javascript - ReactJS:已经在上层范围内声明
问题描述
我已经声明了一个变量
const [listRealm, setListRealm] = useState([
{
value: null,
label: 'select one',
},
]);
const findList= async () => {
await axios.get(`${apiUrl}`).then(resp => {
resp.data.map(res => {
setListRealm(listRealm => [...listRealm, { value: res.id, label: res.name}]); // error here
});
});
};
useEffect(() => {
findList();
}, []);
现在我的问题是我收到错误:
'listRealm' 已在上层范围内声明 @typescript-eslint/no-shadow
考虑到我正在设置此变量,我不明白如何更改变量的名称。
我能怎么做?谢谢你
解决方案
您在setListRealm
回调中使用的名称可以是您想要的任何名称,因此您可以直接使用它previouslistRealm
或其他名称:
setListRealm(previousListRealm => [...previousListRealm, { value: res.id, label: res.name}]);
它不必与您从中输入值的常量的名称相匹配useState
。
推荐阅读
- opencv - 有什么方法可以从完整视频中检测和剪切出真实的视频部分
- c# - Prism InvokeCommandAction 可以与 Microsoft.Xaml.Behaviors.Wpf 一起使用吗
- antlr4 - ANTLR 将可选标签优先于非可选标签
- python - Python Post Request 为以下 post 请求返回 422 错误
- php - Symfony / API 平台 - 多对多关系仅以一种方式工作
- r - 将行映射到 R 中的列列表
- sql - 错误:数字类型的输入语法无效:“”
- python - 使用 pem 密钥和客户端证书的 KAFKA SSL 连接
- java - 当用户停止在 Java TextArea 中输入时如何在另一个线程中保存和拼写检查
- sql - 每日入住查询