【问题标题】:How to update object state using useState hook如何使用 useState 挂钩更新对象状态
【发布时间】:2020-09-27 15:41:46
【问题描述】:

尝试通过 useState 挂钩更新对象状态,但它似乎不起作用。只是想知道是否有人能在这里发现我做错了什么:

这是我的使用状态:

const [selectState, setSelectState] = React.useState({
  level1: 0,
  level2: 0,
  level3: 0,
});

我尝试更新状态的组件:

<Button
   onClick={() => setSelectState({ ...selectState, level: 1 })}
   selected={selectState === 1}
   text="Blue"
 />

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    我可以在您的代码中看到几个问题:

    • setSelectState({ ...selectState, level: 1 }) - 您正在更新 level 属性,但该属性不存在于该状态中。因此,您是在状态中添加新属性,而不是更新现有属性。

    • selected={selectState === 1} - selectedState 是一个对象。因此,您将数字与对象进行比较,并且由于严格的相等运算符 (===),以下条件:

      selectState === 1
      

      永远不会评估为true

    【讨论】:

      猜你喜欢
      • 2020-05-31
      • 2021-04-10
      • 2021-01-27
      • 2021-10-02
      • 2021-03-10
      • 2022-01-17
      • 2019-08-16
      • 2020-11-29
      相关资源
      最近更新 更多