我正在使用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方法中显式设置状态。潜入错误看起来像是反应路由器试图设置状态:
虽然即使有这个警告,应用程序似乎表现良好。不知道怎么摆脱这个警告。
答案 0 :(得分:1)
推送功能是设置状态。您应该使用react-router内置的onEnter
功能来测试输入路径之前的条件