私はreact-router-domバージョン4.3.1を使用しており、paramを別のルートに渡しています。すべて正常に機能していますが、そのparamを変更/削除する必要があります。どうすればよいですか?
私はこれを試しました
this.props.location.state.deleted = false
//admin profile page
history.push('/home/admins', { state: { deleted: true } });
//all admins page
componentDidMount(){
const checkDelete = this.props.location.state.deleted // true
}
基本的に私は彼/彼女のプロフィールページから管理者を削除し、次にすべての管理者ページに移動します、そしてこのページで私は管理者の削除の成功メッセージを表示したいと思います。
だから私は本当のように働いています、
componentDidMount(){
const checkDelete = this.props.location.state.deleted // true
if(checkDelete){
this.setState({
messageAlert:true
})
}
}
アラートは自動的に閉じますが、checkDeleteは常にtrueです。削除するか、falseにするにはどうすればよいですか。
history
オブジェクトのスタックはルーターによって維持され、取得するたびにstate: { deleted: true }
。考えられるハッキングの1つは、同じルートアドレスをプッシュして、を設定することにより、履歴スタックを更新することstate: { deleted: false }
です。
このcomponentDidMount
ようにこれを行うことができます:
const checkDelete = this.props.location.state.deleted // true
if(checkDelete){
this.setState({
messageAlert:true
}, () => {
history.replace('/home/admins', {state: { deleted : false }}) // false
}
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加