Javascript React.js:为什么要将更新数据的回调传递给拥有的组件

Javascript React.js:为什么要将更新数据的回调传递给拥有的组件,javascript,reactjs,Javascript,Reactjs,我正在学习React.js教程(),不理解这句话背后的原因: 在CommentBox中执行所有这些逻辑是有意义的,因为CommentBox拥有表示注释列表的状态 为什么CommentBox不将注释列表传递给CommentForm,这样它就可以将新注释添加到列表中,而不是传递onCommentSubmit回调?一般来说,这种控制反转允许您将有状态数据和对该数据的操作集中在“负责”的组件中用于跟踪它并减少更改组件的理由。例如,如果某一天评论列表变成了评论地图或评论的不可变数据结构,那么您不必更改Co

我正在学习React.js教程(),不理解这句话背后的原因:

在CommentBox中执行所有这些逻辑是有意义的,因为CommentBox拥有表示注释列表的状态


为什么CommentBox不将注释列表传递给CommentForm,这样它就可以将新注释添加到列表中,而不是传递onCommentSubmit回调?

一般来说,这种控制反转允许您将有状态数据和对该数据的操作集中在“负责”的组件中用于跟踪它并减少更改组件的理由。例如,如果某一天评论列表变成了评论地图或评论的不可变数据结构,那么您不必更改
CommentForm
,只需更改
CommentBox

这还允许您构建更多可重用组件。例如,想象一个您希望能够编辑注释的场景并不是一件容易的事。通过将更改处理程序传递到
CommentForm
,可以重用此组件进行编辑和创建注释,但这只有在表单内部不假设提交时会发生什么情况时才可能