useState,检测对象数组中的更改

时间:2020-05-20 17:34:06

标签: javascript reactjs react-hooks use-state

每当我在数组中进行更改时,我现在都无法使DOM呈现。我正在使用反应挂钩。

 const [priceRanges, setPriceRanges] = useState([]);
  function changeValueBegin(id, value) {
    const newArray = priceRanges;
    newArray[id - 1].begin = value;
    setPriceRanges(newArray);
    setAa(value);
  }

  objectExemple = {

   begin: 0
​
   end: 0
​
   id: 1
}

这是在输入字段中呈现的,每当我更改其值时,我都希望在元素内部显示该值。

我传递对象的ID及其值,将其更改并设置为Array,但是dom渲染不会触发。我正在使用的旁路正在更新另一个值(aA),当该值被更新时,将再次渲染dom,并显示该值。

在向数组中添加新元素时,我在制作dom渲染时遇到了同样的麻烦,

function addPriceRange() {
    const newRange = {
      id: priceRangesLength + 1,
      begin: 0,
      end: 0,
      sale_value: 0,
    };

    setPriceRanges(priceRanges.concat(newRange));
    setPriceRangesLength(priceRanges.length + 1);
  }

使用concat而不是push,阵列检测到已从先前状态更改。我想要同样的东西,但是当我更新一个已经存在的对象时;

0 个答案:

没有答案