在ReactJS中更新Array <object>类型的状态

时间:2019-03-05 19:30:33

标签: javascript reactjs typescript immutability

我有一个带有元信息的对象数组。 这是对象的架构。

       this.state.slotData [{
        availability: boolean,
        id: number,
        car: {
            RegistrationNumber : string,
            Color: string
        }, {...}, {...}, ...]

现在,对于任何传入的汽车,我都会记录汽车详细信息 我正在进一步检查是否有可用的插槽,如果有,请更新 slotData 状态。 我 filter() slotData查找所有可用的插槽,然后引用availableSlots [0]访问最近的空插槽的ID。 现在,我只需要更新 this.state.slotData 而无需对其进行更改。

1 个答案:

答案 0 :(得分:0)

如果要应用不可变的更新并将car作为单个对象添加到slotData数组中,则应首先散布整个slotData数组,然后再添加car对象,如下所示:

const updatedSlotData = [...slotData, carObj];
this.setState({ slotData: updatedSlotData });

只要先制作一份副本,就可以安全地对该副本进行变异。