私のコンポーネントthis.props.save();
componentWillUnmount
?しかし、私は別のタブに外部リンクにページを残せば、それは私のコンポーネントユーザーがボタンをクリックしたときに再利用可能な反応コンポーネントを保存するにはどうすればよいですか?
export default class AutoSave extends React.Component {
constructor(props) {
super(props);
this.setIntervalId = null;
}
componentDidMount() {
if (!window.onbeforeunload) {
window.onbeforeunload =() => {
this.props.save();
};
}
this.setIntervalId = setInterval(() => this.props.save(), this.props.intervalInMs);
}
componentWillUnmount() {
this.props.save();
clearInterval(this.setIntervalId);
}
render() {
return <span className="saving">Last saved at {now()}</span>;
}
}
私のリンクは、この
<Link href="http://www.google.com" target="_blank">
Google Link
</Link>
のように見えますcomponentWillUnmount
をトリガしません。ユーザーがリンクをクリックしたときにコンポーネントを保存するにはどうすればよいですか?それは反応/還元アプリです。
新しいタブを開くと、 'componentWillUnmount()'や 'onbeforeunload'は起動しません。どちらの場合も、アプリは元のタブで開いているためです。 Reactはあなたがページを閉じるかナビゲートする直前にコンポーネントをアンマウントしないので、 'componentWillUnmount()'はページが閉じていても何もしません。 'onbeforeunload'は、同じタブ*内のページ*から*離れたところをナビゲートするときだけトリガーします*、またはタブ/ウィンドウを閉じます。ユーザーがボタンをクリックするたびに 'this.props.save()'を確実に呼び出すには、ボタンに 'onClick'ハンドラを追加するだけです。 – jered
あなたは私にどのように表示できますか? –