【发布时间】:2020-08-20 13:56:18
【问题描述】:
我有一组处于状态的对象:const [objects, setObjects] = useState([]);
我有一个添加按钮,可以将对象添加到数组中,这是 onclick 事件的主体:
setObjects([...objects, {
id: 20,
property1: value1
}]);
我有一个从数组中删除对象的删除按钮,这是 onclick 事件的主体:
const newObjects = objects.filter(object => {
return object.id !== idToRemove; // idToRemove comes from the onclick event
});
setObjects(newObjects);
现在,如果对象从状态中删除,我想对更新后的状态做一些事情。
问题是我必须等到状态更新,并且我不想监听每个状态更改,只有在删除某些内容时才可以。
这是我目前所拥有的:
useEffect(() => {
//execute a function that uses the updated state
}, [objects.length]);
但是如果一个对象被添加到状态中,这也会触发。
简而言之:当一个对象从对象数组中移除并且状态完成更新时,我想做一些事情
我想用钩子来做这个。
提前致谢!
【问题讨论】:
-
你能举个例子来说明你正在尝试做什么吗?为什么不在从数组中删除对象的函数中这样做呢?
-
@CelsoWellington 因为我必须在状态更新完成后执行这个
标签: javascript reactjs react-hooks react-state