我想将我的comment的键值更新为新值,同时保持其他键不变。我知道我可能需要传播运算符...但是我不确定确切的语法。我需要放入setResource()来完成此操作吗?
const VideoPage = () => {
const [state, setResource] = useState(
{
video: 'placeholder'
loading: 'placeholder'
comment: 'placeholder'
}
)
const funct = () => {
setResource()
}
}
答案 0 :(得分:3)
如果要保留状态的其他部分,应执行以下操作:
setResource(prevState => ({
...prevState,
comment: "new Value",
}))
因为状态的setter函数不会合并其他值,例如旧的setState
方法。这就是为什么您应该做functional update。
答案 1 :(得分:1)
按原样传播对象,然后更新所需的值。
const VideoPage = () => {
const [state, setResource] = useState(
{
video: 'placeholder'
loading: 'placeholder'
comment: 'placeholder'
}
)
const funct = () => {
setResource({...state, comment:'Hello'})
}
}