React-router产生setState警告

时间:2016-09-08 16:48:48

标签: reactjs redux react-router react-redux

我正在使用React,Redux和React-Router。在我的React组件中的MapDispatchToProps()中,我检查一个条件,如果该条件为真,我调用router的browserHistory.push(“/ newLocation”)。出于某种原因,我收到了这个错误:

  

警告:setState(...):在现有状态期间无法更新   转换(例如在<input type="f-name" name="shortText" class="form-control" id="first-name" placeholder="First Name" ng-model="data.answer.shortText"> 或其他组件内   构造函数)。渲染方法应该是道具的纯函数   州;构造函数的副作用是反模式,但可以移动   到render

有趣的是我的React组件是无状态的(纯JS函数),所以我知道我没有在render方法中显式设置状态。潜入错误看起来像是反应路由器试图设置状态:

Stracktrace

虽然即使有这个警告,应用程序似乎表现良好。不知道怎么摆脱这个警告。

1 个答案:

答案 0 :(得分:1)

推送功能是设置状态。您应该使用react-router内置的onEnter功能来测试输入路径之前的条件