Javascript 是否直接更新useState对象密钥?
我想将comment的键值更新为新值,同时保持其他键值不变。我知道我可能需要扩频器。。。但我不确定确切的语法。要实现这一点,我需要在setResource中添加什么Javascript 是否直接更新useState对象密钥?,javascript,reactjs,state,react-hooks,Javascript,Reactjs,State,React Hooks,我想将comment的键值更新为新值,同时保持其他键值不变。我知道我可能需要扩频器。。。但我不确定确切的语法。要实现这一点,我需要在setResource中添加什么 const VideoPage = () => { const [state, setResource] = useState( { video: 'placeholder' loading: 'placeholder' comment: 'placeholder' }
const VideoPage = () => {
const [state, setResource] = useState(
{
video: 'placeholder'
loading: 'placeholder'
comment: 'placeholder'
}
)
const funct = () => {
setResource()
}
}
如果你想保留该州的其他部分,你应该这样做:
setResource(prevState => ({
...prevState,
comment: "new Value",
}))
因为状态的setter函数不会像旧的setState方法那样合并其他值。这就是为什么你应该做一个。如果你想保留该州的其他部分,你应该这样做:
setResource(prevState => ({
...prevState,
comment: "new Value",
}))
因为状态的setter函数不会像旧的setState方法那样合并其他值。这就是为什么您应该按原样展开对象,然后更新所需的值
const VideoPage = () => {
const [state, setResource] = useState(
{
video: 'placeholder'
loading: 'placeholder'
comment: 'placeholder'
}
)
const funct = () => {
setResource({...state, comment:'Hello'})
}
}
按原样展开对象,然后更新所需的值
const VideoPage = () => {
const [state, setResource] = useState(
{
video: 'placeholder'
loading: 'placeholder'
comment: 'placeholder'
}
)
const funct = () => {
setResource({...state, comment:'Hello'})
}
}
我不太确定直接传播现状是不是正确的方法。最后,我们将使用当前状态并使用新值更新它。使用功能更新可能是一个更好的主意。我不太确定直接传播当前状态是正确的方法。最后,我们将使用当前状态并使用新值更新它。使用功能更新可能是一个更好的主意。一开始没有注意到你的链接。我会仔细阅读。@devserkan如果我想更新两个值1视频和2评论,那么我是否也需要为视频编写两次相同的代码?@cakePHP,您可以使用相同的代码更新视频。只需添加属性和新值。一开始没有注意到您的链接。我会仔细阅读。@devserkan如果我想更新两个值1视频和2评论,那么我是否也需要为视频编写两次相同的代码?@cakePHP,您可以使用相同的代码更新视频。只需添加属性和新值。