Javascript 如何使用react钩子更新对象?

Javascript 如何使用react钩子更新对象?,javascript,reactjs,Javascript,Reactjs,当用户单击“附加到数组元素id”按钮时,我想更新我的对象。但当我向数组添加数据时,它会覆盖所有对象,而不保存以前的数据。我通过了prevState回调,但它不起作用 const [filteredObject, setFilter] = useState({destinations:[],season:[],difficulty:[],price:'',is_exclusive:'',duration:''}); if (e.currentTarget.name==='destinations

当用户单击“附加到数组元素id”按钮时,我想更新我的对象。但当我向数组添加数据时,它会覆盖所有对象,而不保存以前的数据。我通过了prevState回调,但它不起作用

const [filteredObject, setFilter] = useState({destinations:[],season:[],difficulty:[],price:'',is_exclusive:'',duration:''});

if (e.currentTarget.name==='destinations') {
   setFilter(prevState=>({...prevState, destinations:[ ...prevState.destinations, e.currentTarget.id]}))
}

当您执行
目标:[e.currentTarget.id]
时,实际上您正在覆盖现有阵列

你需要这样做

setFilter( prevState => ({
   ...prevState, 
   destinations:[ ...prevState.destinations, e.currentTarget.id ]
}))

@ravibagul91我已经像你一样试过了,但它会出错。请查收above@YerlanYeszhanov,发布完整的函数,并调用该函数中的元素。@YerlanYeszhanov,检查此项,这可能会对您有所帮助。