为什么在[]中更改元素时不能使用useEffect

时间:2020-07-06 08:55:20

标签: reactjs

我想在URL更改时设置状态。要使用URL,我正在使用useHistory

我有一个可以更改网址的功能,例如

var history = useHistory();
const onClickItem = list => {
  history.push('/lists/' + String(list.id));
  console.log(history.location.pathname);
};

useEffect会将状态设置为

useEffect(() => {
  const listId = history.location.pathname.split('lists/')[1];
  if (DBList) {
    const selectList = DBList.find(list => list.id === Number(listId));
    setCelectTask(selectList);
  }
}, [history.location.pathname]);

在控制台和URL中,我都看到了更改,但是useEffect不起作用。 我尝试在数组中添加[history, history.location],但没有帮助。

谢谢。

0 个答案:

没有答案