反应路由器和setState冲突

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反应路由器和setState冲突相关的知识,希望对你有一定的参考价值。

这节省吗?将this.props.history push忽略setState,因为setState是异步的吗?

if (id) {
    this.props.history.push(`/edit/${data.id}`)

  this.setState({
    showMsg: 'saved'
  })
}

或者我应该这样做?

if (id) {
  this.setState({
    showMsg: 'saved'
  }, ()=>this.props.history.push(`/edit/${data.id}`))
}
答案

setState方法的第二个参数是回调,它不会接受它作为参数。

改变这一点

  if (id) {
      this.setState({
        showMsg: 'saved'
      }, this.props.history.push(`/edit/${data.id}`))
    }

对此

if (id) {
  this.setState({
    showMsg: 'saved'
  },()=> this.props.history.push(`/edit/${data.id}`))
}

这节省吗?

设置状态和设置状态时是;你通过回调。在国家确定后,它将推向历史。

以上是关于反应路由器和setState冲突的主要内容,如果未能解决你的问题,请参考以下文章

反应路由和django url冲突

反应路由器和快递冲突

尽管所有反应路由器版本冲突,如何在反应中进行服务器端渲染?

this.setState 是不是在反应中返回承诺

用动态键反应 setState

卸载组件时对 setState 做出反应警告