如何对对象的嵌套属性使用Effect更改?

时间:2019-12-13 19:13:10

标签: javascript reactjs react-hooks

应用初始化后,我有空对象'paramsForms'

然后,我按下按钮,paramsForms对象变成这样。 enter image description here

然后,我可以按下另一个按钮,并向我的对象添加另一个属性(道具名称会自动生成,因此我不知道该名称)。新模型如下所示:

enter image description here

我想产生效果,听这2的嵌套属性,或者不知道我的paramsForms对象中将嵌套多少对象。

该怎么做?我以为这会有所帮助,但是这种情况每次都会触发:(并且只有在'estateCategory'.value发生更改时,我才需要触发它

useEffect(() => {
    //do something
  }, [Object.keys(paramsForms).map(o => paramsForms[o].estateCategory.value)])

更新:

我忘记了useEffect想要以逗号分隔的字符串形式监听的值,所以我决定将数组转换为带有逗号的字符串:

useEffect(() => {
    //do something
  }, [
    Object.keys(paramsForms)
      .map(o => paramsForms[o].estateCategory.value)
      .join(',')
  ])

此效果会根据需要触发,但现在我想对嵌套在paramsForms中的所有对象执行的操作,而只对已更改的对象执行。如何纠正效果?

0 个答案:

没有答案