javascript - 如何在反应钩子中更新状态的单个属性?
问题描述
我正在尝试更改状态挂钩,但出现此错误...我知道另一种更改方法,但它应该与扩展语法一起使用,对吗?
export default function App() {
const [state, setState] = {
sld_url: "",
geojson_url: "",
}
const handleSldUrlChange = event => {
setState({...state, sld_url: event.target.value})
}
return (
<TextField
label="SLD URL"
value={state.sld_url}
className={classes.textField}
onChange={handleSldUrlChange}
margin="normal"
variant="outlined"
/>
);
}
解决方案
首先是你需要useState:
const [state, setState] = useState({
sld_url: "",
geojson_url: "",
})
比在里面handleSldUrlChange function
你可以使用自定义回调来更新状态
const handleSldUrlChange = event => {
setState(prev => {...prev, sld_url: event.target.value})
//or
//setState({...state,sld_url: event.target.value})
}
推荐阅读
- android - NullPointerException 错误。应用程序运行但一直停止。请提供任何帮助
- python - 如何在tensorflow中使用给定的分隔符生成词汇?
- sql - 同一选择查询中的 Hive 查询条件语句
- python - 整数输入数的倒数
- excel - 在给定行中仅计算一次值的公式
- python - ModuleNotFoundError:没有名为“plotTools”的模块
- javascript - HTML表单计算系统
- c++ - 什么情况下需要共享智能指针而无法使用 unique?
- java - 如何有效地(即没有内存泄漏)检索 Solr 索引中已经存在的文档?
- c# - 围绕使用的多目标和定义常量