首页 > 解决方案 > 仅更改 State şin React 的一项属性

问题描述

我只想更改在 React 中有 2 项的状态中的一项。这是代码。

//İnitial
const initialState ={
  status:"",
  gender:""
}
//Creating State
const [searchTerm,setSearchTerm]=useState(initialState);

//Callback function in select on change
const setStatusFilter=(event)=>{
setSearchTerm(prev=>(
{
  status:event.target.value,
  ...prev.gender
}))
}

const setGenderFilter=(event)=>{
setSearchTerm(prev=>(
{
    ...prev.status,
    gender:event.target.value

}))

}

我使用这个状态来获取 API。但是当我更改其中一个时,另一个变得未定义,但它必须是以前的值。所以 fetch 坏了。我不明白为什么会这样。

标签: reactjsstatereact-state

解决方案


直接使用扩展运算符prev,然后只需添加要更新的其他字段。

setSearchTerm(prev => ({...prev, status: event.target.value}))

您试图传播...prev.statusstatus只是一个字符串值,而不是一个对象。


推荐阅读