直接更新 useState 对象键?

Rob*_*t C 2 javascript state reactjs react-hooks

我想将评论的键值更新为新值,同时保持其他键不变。我知道我可能需要展开运算符……但我不确定确切的语法。我需要在 setResource() 中放入什么来完成此操作?

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

dev*_*kan 11

如果你想保留状态的其他部分,你应该这样做:

setResource(prevState => ({
    ...prevState,
    comment: "new Value",
}))
Run Code Online (Sandbox Code Playgroud)

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