Javascript React中的变异道具

Javascript React中的变异道具,javascript,reactjs,Javascript,Reactjs,我有一个React组件,它通过props接收数组或对象。我想做的事情是让活动重新安排这些道具。但是,React重新渲染似乎仅在状态更改时发生 现在我已经在父对象中处理了排序,并将处理排序的方法作为道具传递,但理想情况下,我希望负责渲染这些对象的组件也处理排序 将道具放入状态似乎不好,但在这里最好做什么?据我所知,React需要更改状态以触发渲染。如果要将排序逻辑附加到组件,则必须创建数组的副本 getInitialState: function () { return {

我有一个React组件,它通过
props
接收数组或对象。我想做的事情是让活动重新安排这些道具。但是,React重新渲染似乎仅在
状态更改时发生

现在我已经在父对象中处理了排序,并将处理排序的方法作为道具传递,但理想情况下,我希望负责渲染这些对象的组件也处理排序


道具
放入
状态
似乎不好,但在这里最好做什么?

据我所知,React需要更改状态以触发渲染。如果要将排序逻辑附加到组件,则必须创建数组的副本

getInitialState: function () {
    return {
        items: this.props.items.slice(0)
    };
},

实施时

道具是不可变的,但在您的情况下,您的数据似乎没有改变,只有排序顺序改变,因此您可以:

  • 将数据和排序功能保留为道具
  • 将您的排序顺序存储在状态
  • 可以使用
    getInitialState
    返回默认排序顺序
  • 更改排序顺序时,将设置状态,以便重新渲染

在我看来,您有两种选择。要么将它们“扔进”状态,然后操纵状态。另一个选项是向项目中添加一些通量架构,然后在发生重新排列事件时启动一个操作,传递道具的组件可以在获取事件时进行重新排列,然后传递新排列的道具。为什么不让父级进行排序?更改子组件的属性将导致其重新渲染: