首先,我想提供一个指向沙箱示例的链接:https://codesandbox.io/s/oq36pl4j49
我正在学习反应+ redux并尝试构建一个简单的测验原型。
我的主要想法是:
quizengine.currentQuestion
告诉我要回答哪个问题
渲染,所以我只是调度动作,正在改变quizengine.currentQuestion
并渲染其余部分goToNext
,那么我可以隐藏下一个或第一个问题没有“后退”按钮。 / LI>
现在一切正常,但当我按Back或Next时,我在控制台中遇到了问题:
Warning: Cannot update during an existing state transition
(such as within `render` or another component's constructor).
Render methods should be a pure function of props and state;
constructor side-effects are an anti-pattern,
but can be moved to `componentWillMount`
我试图改变
<button className="btn prev" onClick={goToPrev}>Back</button>
<button className="btn next" onClick={goToNext}>Next</button>
到那个:
<button className="btn prev" onClick={() => {goToPrev()}}>Back</button>
<button className="btn next" onClick={() => {goToNext()}}>Next</button>
但它仍然没有帮助。
我是朝着正确的方向前进吗?
这个小App是否有意义?
答案 0 :(得分:0)
添加如下函数:
goToPrev = () => {
this.context.router.goBack();
}
并在render()中使用:
<button className="btn prev" onClick={ this.goToPrev }>Back</button>