反应todos教程道具vs状态

时间:2016-06-13 05:01:42

标签: meteor reactjs state prop

所以我正处于学习Meteor和React的初级阶段,我刚刚完成了关于制作Todos list的教程。

在实现中,我们在顶部有一个复选框,允许我们在已完成的任务和所有任务之间切换。这被设置为一个州。

每个任务旁边都有复选框,可以将任务显示为完成或不完整。

我的问题是,这两个复选框都实时更改,但只有前者被指定为状态变量?为什么任务复选框是道具?

2 个答案:

答案 0 :(得分:1)

全局复选框仅链接到App组件的状态。

每个Task组件的本地复选框变得更复杂。问题是App组件需要全局了解所有Task个对象,例如隐藏已完成的任务。

Task组件可以保持复选框状态,但它不是React的工作方式。在React中,父组件通常不会读取其子项的状态,而是保持状态本身并将相关信息传递给其子项,以便它们可以呈现它。

当孩子需要更新某个状态时,它会在全局级别(请参阅tutorial中的toggleCheckeddeleteThisTask)进行更新,以便其父级获得通知并重新呈现孩子。有关其他示例,请参阅here

答案 1 :(得分:0)

好解释here(完整版)

enter image description here