【发布时间】:2015-03-11 18:31:57
【问题描述】:
我知道我可以在渲染组件时传递props。我也知道getInitialState 方法。但问题是,getInitialState 并没有太大帮助,因为我的组件不知道它的初始状态。我愿意。所以我想在渲染时传递它。
类似这样的东西(伪代码):
React.render(<Component initialState={...} />);
我知道我可以使用 prop 作为初始状态,但这听起来像是一种反模式。
我该怎么办?
为清晰而编辑
假设我有一个CommentList 组件。当我第一次渲染它时,初始状态对应于我数据库中当前 cmets 的快照。由于用户包括 cmets,此列表将发生变化,这就是为什么它应该是 state 而不是 props。现在,为了呈现 cmets 的初始快照,我应该将它传递给 CommentsList 组件,因为它无法知道它。我的困惑是,我看到传递此信息的唯一方法是通过 props,这似乎是一种反模式。
【问题讨论】:
-
facebook.github.io/react/tips/… -- 我认为最后一节适用于此。如果这只是初始状态并且你说清楚了,那可能没问题。
-
@RandyMorris 实际上很有意义。如果我正在为第一个请求(Node.js 或 ReactJs.NET)进行服务器渲染,我肯定不想进行额外的 Ajax 调用来获取数据。这甚至对 SEO 都不友好。
标签: javascript reactjs