在反应状态下编辑自定义对象

时间:2017-07-02 14:49:35

标签: reactjs state

我的app状态中有一个名为myMap的Map()对象。 我需要编辑这张地图的一个键。所以我创建了一个名为newMyMap的地图,它与现有的myMap对象相同,但键值不同。

当我调用setState时,设置myMap = newMyMap Ract插入新Map(myNewMap)intead删除旧Map。如何管理这种情况?

2 个答案:

答案 0 :(得分:1)

我认为你只是不明白状态是如何起作用的......它只是一个带钥匙的物体,如果你设置了其他钥匙当然其他钥匙仍在那里......

所以如果你想改变" myMap"只需为它分配新值..比如:

const newMyMap = Map({some: 'data'});

this.setState({
  myMap: newMyMap,
});

你不应该修改现有的对象。如果您只需要修改一些对象数据,请从旧对象创建新对象,如:

this.setState({
  myMap: Object.assign({}, myOldObject, {someProp: 'new value'}),
});

答案 1 :(得分:0)

我发现了问题。内部具有相同值的两个Map对象(或其他类型)具有2个等于对象。也许我没记住这一点。