请告诉我使用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?有什么区别
答案 0 :(得分:0)
您的问题在这里
setComponents(components.fillter(item => item.key !== 'b')))
// ^ typo
尝试这样的事情,
setComponents(components.concat(
components.filter(item => item.key !== 'b'))
))