我的app状态中有一个名为myMap的Map()对象。 我需要编辑这张地图的一个键。所以我创建了一个名为newMyMap的地图,它与现有的myMap对象相同,但键值不同。
当我调用setState时,设置myMap = newMyMap Ract插入新Map(myNewMap)intead删除旧Map。如何管理这种情况?
答案 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个等于对象。也许我没记住这一点。