最近,我开始在proyect中工作,我注意到我需要一些方法来修改一个值,而不会失去以前的状态。基本上和数组一起工作。但是我不知道该怎么做。有人能帮我告诉我如何修改状态吗(顺便说一下,我用的是反应钩子.)若要向数组中的前一个状态添加更多值,请执行以下操作?
很抱歉没有贴出代码之类的东西,我甚至不知道怎么写。
提前谢谢你。
发布于 2020-05-31 05:27:14
使用ES6扩展运算符将新对象推送到现有数组。
向Array添加新对象:
const [todo, setTodo] = useState([{ task: "Todo 1" }]);
const addTodo = () => {
let newTodoTask = { task: `Task ${todo.length + 1}` };
setTodo(tasks => [...tasks, { ...newTodoTask }]);
};修改数组中的对象:
const editTask = (e, taskId = 0) => {
setTodo(tasks =>
tasks.map((task, idx) =>
idx === taskId ? { task: "Edited Todo 1" } : { ...task }
)
);
};从数组中删除对象
const deleteTask = (e, taskId = 0) => {
setTodo(tasks => tasks.filter((task, idx) => idx !== taskId));
};在这里找到简单的工作示例。
https://codesandbox.io/s/unruffled-elgamal-h7fhg?file=/src/App.js:482-593
首先,在开始执行项目之前学习基本的ES6。
https://stackoverflow.com/questions/62111525
复制相似问题