【发布时间】:2015-01-16 14:23:43
【问题描述】:
我有以下视图层次结构,
<Container>
<OrderList data="orders" >
<Order data={orders[0]} />
<Order data={orders[1]} />
<Order data={orders[2]} />
...
</OrderList>
<OrderList data="orders" >
<Order data={orders[0]} />
<Order data={orders[1]} />
<Order data={orders[2]} />
...
</OrderList>
....
</Container>
单个订单的更新通过推送器进入。
我是 React 新手,想知道以下哪个是更新已安装组件的好方法
a) OrderList 下订单的所有更新都由 OrderList 组件中的函数处理
function handleChange(order_index, updated_order){
var orders = _.clone(this.state.orders);
orders[order_index] = updated_order
this.setState(orders);
}
v/s
b) 订单更新由订单组件中的函数处理
function handleChange(updated_order){
this.setState({order: updated_order});
}
【问题讨论】:
-
a) 可能更好。状态应该尽可能靠近根,并且尽可能少的组件应该有状态。
标签: javascript reactjs