我有一个react.js
应用程序,它从API加载数据显示一堆问题(textboxes
,radiolist
,checkboxes
等)。用户填写并提交所有答案给API,然后发送一组新的问题。如何重置孩子的状态reactjs组件
所有这些问题都在一个单一的对象,所以我创建保持当前的一组状态问题父react.js组件。当状态改变时,重新呈现下面的每个问题。这工作非常好。
问题是,有时候API会在一行中显示两次完全相同的问题,但是因为这是在状态中进行的,react.js足够聪明以知道它不需要渲染一个全新的组件,因为旧的会做(有一些小的更新)。
的问题是,如果我选择上的第一个,单选按钮,基于存储在所述子组件的状态的初始数据,这是最初设定内componentDidMount)。但是,当第二个问题出现时,因为它本质上是相同的组成部分,所以国家仍然存在。构造函数不会再被调用。
我想我应该用其他的事件之一,可能是:
componentWillReceiveProps
componentWillMount
componentWillUpdate
,但我想不出哪一个是最一致的。
我基本上想要重置selectedAnswer
每次父从API接收新数据,并基本上重新呈现所有子组件(但反应不会这样做)。
编辑
我不知道,而不是试图通过内部生命周期事件重置此,我是否可以在一组不同的道具到组件传递,因此它可以决定是否要重新创建或重新以通常的方式进行。
更改组件的''key'告诉'React'它是一个*不同的*组件。 – Sulthan