当前位置: 首页 > 知识库问答 >
问题:

是否直接更新useState对象密钥?[副本]

殷建弼
2023-03-14

我想将comment的键值更新为新值,同时保持其他键值不变。我知道我可能需要扩频器。。。但我不确定确切的语法。要实现这一点,我需要在setResource()中放入什么?

const VideoPage = () => {
  const [state, setResource] = useState(
    {
      video: 'placeholder'
      loading: 'placeholder'
      comment: 'placeholder'
    }
  )
  const funct = () => {
    setResource()
  }
}

共有2个答案

施永宁
2023-03-14

按原样展开对象,然后更新所需的值。

const VideoPage = () => {
  const [state, setResource] = useState(
    {
      video: 'placeholder'
      loading: 'placeholder'
      comment: 'placeholder'
    }
  )
  const funct = () => {
    setResource({...state, comment:'Hello'})
  }
}
梁巴英
2023-03-14

如果你想保留该州的其他地方,你应该这样做:

setResource(prevState => ({
    ...prevState,
    comment: "new Value",
}))

因为您的状态的setter函数不会像旧的setState方法那样合并其他值。这就是为什么您应该进行功能更新。

 类似资料:
  • 我正在尝试更新我的猫鼬数据- 这里是数据结构- 现在我必须更新产品数量和价格。 这是我的练习-

  • 问题内容: 我只是想知道,如果一个键会发生什么是可变的,测试程序如下证明,我无法理解当两个平等和方法返回true和值相同,为什么回报。 这个输出: 是否6 6是 问题答案: 该javadoc的解释它 注意:如果将可变对象用作地图键,则必须格外小心。如果在对象是映射中的键的情况下以影响等值比较的方式更改对象的值,则不会指定映射的行为。 基本上,不要在地图中使用可变对象作为键,否则会被烧死 推断一下,

  • 我在MongoDB中有一个动态键值对象。 任何帮助都会有帮助。 谢了。

  • 我想验证检查密钥是否存在。 有时,会有一个额外的字段,如: 所以我想检查“联系人”键是否存在

  • 首先,一点背景。我有一组Java应用程序,有些基于JPA,有些不是。要创建我的数据库,我目前正在使用Hibernates模式导出为那些使用JPA的人生成创建脚本。那些不使用JPA的人我手动生成脚本。然后在应用程序安装期间使用ANT运行这些脚本。对于更新,应用程序安装程序只需将更新脚本应用于数据库。 为了改进数据库更新的管理,我一直在研究Flyway和Liquibase。这两个脚本似乎几乎都能满足我

  • 是否有必要向租户更新房屋的新引用? 编辑:为了澄清,您可以假设实体是在上面的代码之前加载的(因此,处于托管状态)。因为这个“事务”是Spring函数的一部分,所以事务将在它的末尾隐式提交。 编辑二:问题不在于我是否应该在一开始就把房子存起来,以避免这种情况。它是关于更好地理解对象是如何管理的。