【发布时间】:2020-07-10 20:35:39
【问题描述】:
当我删除一行时,我的项目列表没有被更新,即使 console.log(data) 在删除该行后减少了一个项目,但是 console.log('list of items after: ', listOfitems) 给我所有完整的项目,甚至那些被删除的项目。
const [listOfitems, setListOfitems] = useState([]);
useEffect(() => {
getListOfitems();
}, [])
请让我知道这里可能出了什么问题:
editable={{
onRowDelete: (oldData) =>
new Promise((resolve, reject) => {
setTimeout(() => {
{
console.log('list of items before: ', listOfitems)
console.log('oldData.item_key;: ', oldData.item_key)
const indexToDelete = oldData.item_key;
console.log(indexToDelete)
const data =
listOfitems.filter(
(item) => ((item.item_key !== oldData.item_key))
)
setListOfitems(data);
console.log(data)
console.log(setListOfitems(data))
deleteitem(oldData);
setListOfitems(data);
console.log('list of items after: ', listOfitems)
}
resolve();
}, 1000);
}),
}}
【问题讨论】:
-
如果你只想跟踪状态的变化,使用这样的钩子:useEffect(() => console.log(the_state_you_need))
-
不,由于某种原因我的 setListofitems 没有触发
标签: javascript reactjs filter use-effect material-table