Javascript React中的变异道具
我有一个React组件,它通过Javascript React中的变异道具,javascript,reactjs,Javascript,Reactjs,我有一个React组件,它通过props接收数组或对象。我想做的事情是让活动重新安排这些道具。但是,React重新渲染似乎仅在状态更改时发生 现在我已经在父对象中处理了排序,并将处理排序的方法作为道具传递,但理想情况下,我希望负责渲染这些对象的组件也处理排序 将道具放入状态似乎不好,但在这里最好做什么?据我所知,React需要更改状态以触发渲染。如果要将排序逻辑附加到组件,则必须创建数组的副本 getInitialState: function () { return {
props
接收数组或对象。我想做的事情是让活动重新安排这些道具。但是,React重新渲染似乎仅在状态更改时发生
现在我已经在父对象中处理了排序,并将处理排序的方法作为道具传递,但理想情况下,我希望负责渲染这些对象的组件也处理排序
将道具
放入状态
似乎不好,但在这里最好做什么?据我所知,React需要更改状态以触发渲染。如果要将排序逻辑附加到组件,则必须创建数组的副本
getInitialState: function () {
return {
items: this.props.items.slice(0)
};
},
实施时道具是不可变的,但在您的情况下,您的数据似乎没有改变,只有排序顺序改变,因此您可以:
- 将数据和排序功能保留为道具
- 将您的排序顺序存储在状态
- 可以使用
getInitialState
返回默认排序顺序
- 更改排序顺序时,将设置状态,以便重新渲染
在我看来,您有两种选择。要么将它们“扔进”状态,然后操纵状态。另一个选项是向项目中添加一些通量架构,然后在发生重新排列事件时启动一个操作,传递道具的组件可以在获取事件时进行重新排列,然后传递新排列的道具。为什么不让父级进行排序?更改子组件的属性将导致其重新渲染: