【发布时间】:2021-06-22 13:18:55
【问题描述】:
大家好!
我是 ReactJS 的新手,我正在尝试做一些简单的项目来获得基础知识。
我开始了一个小项目,包括使用 React Hooks 添加和删除列表的用户(操纵状态)。
我可以正确地将新用户添加到我的用户列表并显示它,但是在删除用户时,什么都没有发生。
我找到了解决方案,但我无法解释,这就是我寻求您帮助的原因!
这是我的 App.js 文件,其中包含 有效的 DeleteUser 函数
import style from './App.module.css';
import React, { useState } from 'react';
import UserList from './components/UserList';
import UserForm from './components/UserForm'
let USERS = [
{
id: 1,
name: 'John',
age: 27
},
{
id: 2,
name: 'Mark',
age: 24
}
]
const App = () => {
const [userss, SetUsers] = useState(USERS);
const AddNewUser = (user) => {
SetUsers((prevList) => {
let updatedList = [...prevList];
updatedList.unshift(user);
return updatedList;
});
};
const DeleteUser = user => {
SetUsers((prevList) => {
let updated = prevList.filter(el => el.id !== user.id);
return updated;
});
};
return (
<div className={style.root}>
<UserForm liftUpNewUser={AddNewUser} />
<UserList users={userss} liftUpUserToDelete={DeleteUser} />
</div>
);
}
export default App;
我的问题是: 为什么以这种方式编写的 DeleteUser 函数(如下)不起作用?知道它和 AddNewUser 函数的逻辑是一样的。
const DeleteUser = user => {
SetUsers((prevList) => {
let updated = [...prevList];
updated.filter(el => el.id !== user.id);
return updated;
});
};
提前对不起我的英语! 希望有人可以帮助我=)
【问题讨论】:
标签: javascript arrays reactjs function react-hooks