javascript - 为什么在 React setState 函数中使用 prevState?
问题描述
请告诉我使用 prevState 和使用 Array.filter 有什么不同。
// components is an array that has object {key: string, item: {}}
const defaultValue = [
{
key: 'a',
item: {},
},
{
key: 'b',
item: {},
},
{
key: 'c',
item: {},
}
];
const [components, setComponent] = React.useState(defaultValue);
// using prevState
setComponents(prevState => prevState.filter(item => item.key !== 'b'));
// using Array. filter
setComponents(components.filter(item => item.key !== 'b')))
结果,using Array.filter
工作不正常。我想知道。原因是 Array.filter 返回一个新数组。
请告诉我使用 prevState 和使用 Array.filter 有什么不同
解决方案
你的问题来了
setComponents(components.fillter(item => item.key !== 'b')))
// ^ typo
尝试这样的事情,
setComponents(components.concat(
components.filter(item => item.key !== 'b'))
))
推荐阅读
- reactjs - 在 Gatsby 中将 SVG 作为组件导入
- r - R中的中位数需要数字数据
- assembly - 将avr汇编程序转换为十六进制
- python - 可以更改数组中的原始变量吗?
- python - 我使用 cv2.connectedComponentsWithStats 时的噪音
- react-native - 附件和操作的 Getstream 聊天文档 / 如何制作可点击的预定义答案?
- windows - 如何使用powershell同时为目录中的所有.exe文件创建多个快捷方式
- android - Android,循环如何工作?(科特林)
- angularjs - 如何使用选项卡移出羽毛笔编辑器
- python - 如何按 pandas.value_counts 对结果进行排序