0

我在 React 中使用 immutability-helper 来更新状态。我曾经更新过这样的事情:

const newElement = update(element, {
            x: {
              $apply: function(x) {
                return x * width;
              }
            },
            markers: {
              $set: element.markers
            }
          });

但是如何更新一个属性,它是一个数组。假设markers是一个数组,如果我使用创建newElement$set,它只是创建一个引用副本,因此,这个:

newElement.markers[0].text = "sample"

将修改状态。除此以外,正确的方法是什么:

 const newMarkers = [];
          newElement.markers.forEach(marker => {
            const updatedMarkers = update(marker, {
              x: {
                $apply: function(x) {
                  return x * width;
                }
              },
              y: {
                $apply: function(x) {
                  return x * height;
                }
              }
            });
            newMarkers.push(updatedMarkers);
          });
newElement["markers"] = newMarkers;
4

0 回答 0