2016-12-01 92 views
-1

我的子组件的状态是一个名为answers的空数组。即使当我更新父状态时,子组件也会保存状态

该数组正在填充索引li项目,其中包含可以是收音机或复选框的输入。所以如果你有4个复选框li元素,并且你点击First和Last,数组将包含0和3.

当我点击“next”时,该数组作为参数传递给从父组件传递的函数并且该函数将该数组从父项添加到父项。

由于父状态得到重新渲染我认为,当再次创建将默认状态是空数组,但它的状态实际上是和以前一样叫我下一个功能我的孩子组成部分,说0和3

我的孩子的构造函数也不会被第二次调用。你可以看到它here

回答

0

当您将回调函数传递给子Question时,这些函数未与父对象Run绑定。因此,当Question调用这些函数时,自引用变量thisundefined

尝试改变这一点:

... 
onPrev = {this.onPrev} 
onNext = {this.onNext} 
... 

要:

... 
onPrev = {this.onPrev.bind(this)} 
onNext = {this.onNext.bind(this)} 
... 

必须有在浏览器控制台抛出错误。如果这不能解决你的问题,也许你可以从控制台发布错误。

相关问题