所以我正处于学习Meteor和React的初级阶段,我刚刚完成了关于制作Todos list的教程。
在实现中,我们在顶部有一个复选框,允许我们在已完成的任务和所有任务之间切换。这被设置为一个州。
每个任务旁边都有复选框,可以将任务显示为完成或不完整。
我的问题是,这两个复选框都实时更改,但只有前者被指定为状态变量?为什么任务复选框是道具?
答案 0 :(得分:1)
全局复选框仅链接到App
组件的状态。
每个Task
组件的本地复选框变得更复杂。问题是App
组件需要全局了解所有Task
个对象,例如隐藏已完成的任务。
Task
组件可以保持复选框状态,但它不是React的工作方式。在React中,父组件通常不会读取其子项的状态,而是保持状态本身并将相关信息传递给其子项,以便它们可以呈现它。
当孩子需要更新某个状态时,它会在全局级别(请参阅tutorial中的toggleChecked
和deleteThisTask
)进行更新,以便其父级获得通知并重新呈现孩子。有关其他示例,请参阅here。
答案 1 :(得分:0)
好解释here(完整版)