【问题标题】:React.js: why pass callbacks for updating data to owned componentsReact.js:为什么将更新数据的回调传递给拥有的组件
【发布时间】:2014-11-23 10:32:13
【问题描述】:

我正在做 React.js 教程 (http://facebook.github.io/react/docs/tutorial.html),但不明白这行背后的原因:

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

为什么 CommentBox 不只是将 cmets 列表传递给 CommentForm 以便它可以将新评论添加到列表中,而不是传递 onCommentSubmit 回调?

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-01
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-31
      • 1970-01-01
      • 2013-12-01
      相关资源
      最近更新 更多