【发布时间】:2021-11-02 18:09:24
【问题描述】:
const [todoList, setTodoList] = useState([{ id: 0, name: 'No active Todos' }]) // Defined in another file. Imported in its child component as allTodos and setTodoList for changing state using props.
const Todos = (props) => {
const setTodoList = (todoId) => {
if (props.allTodos.length === 1) {
props.setTodoList([{ id: 0, name: 'No active Todos' }])
}
else {
props.setTodoList(props.allTodos.filter(
todo => todo.id !== todoId
))
}
}
return (
<div id="todos_container">
{
props.allTodos.map((prev) => {
return (
<div id="item_container">
<button type='button' className='check_button' onClick={() => setTodoList(prev.id)} />
<div>{props.allTodos.name}</div>
</div>
)
})
}
</div>
}
现在,假设todoList 有三个项目,例如:
[ {id: 1, name: "..."}, {id: 2, name: "..."}, {id: 3, name: "..."} ]
如果我单击从映射数组返回的第二个项目/元素,那么第二个对象将从 setTodoList 中删除,它会像:[ {id: 1, name: "..."}, {id: 3, name: "..."} ]。
所以,我想要的是 id 将自身更改为连续数字,例如:
[ {id: 1, name: "..."}, {id: 2, name: "..."} ] 而不是 [ {id: 1, name: "..."}, {id: 3, name: "..."} ]
【问题讨论】:
标签: reactjs react-functional-component