在React Router中,如何删除/更改我之前发送的history.push中的参数?

胡扎法·艾哈迈德(Huzaifa Ahmed)

我正在使用4.3.1版本的react-router-dom版本,并且正在将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 }一种可能的破解方法是通过推送相同的路由地址但设置来更新历史记录堆栈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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章