reactjs - 仅更改 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 坏了。我不明白为什么会这样。
解决方案
直接使用扩展运算符prev
,然后只需添加要更新的其他字段。
setSearchTerm(prev => ({...prev, status: event.target.value}))
您试图传播...prev.status
但status
只是一个字符串值,而不是一个对象。
推荐阅读
- docker - 使用 docker 在 Openstack 上解析服务器并使用 Parse API 通过网络进行通信(也登录以查看解析仪表板)
- reactjs - 如何重置使用 DraftJS 的不受控制的 React 组件的值?
- python - Chromedriver 在后台使用 Python Selenium 时停止运行
- typescript - VSCode 无法识别子目录中的类型
- java - 刷新 gradle 项目时出现此错误:原因:类型代码无效:B3
- java - 打印导致异常错误的特定字符
- r - 用分数序列填充缺失值
- jenkins - 创建一个支持 JDK12 的 ssh_jenkins_slave 镜像
- adonis.js - 在 PUT、POST、DELETE 操作中 Postman 中的 AdonisJS 错误代码“EBADCSRFTOKEN”
- javascript - 如何知道视频是否来自