更新 redux 存储后返回时出现 react-dom 错误
react-dom error when going back after updating the redux store
我在我的 React 项目中遇到了一个奇怪的错误。如果我从主页转到下一页,一切正常。下一页点击 API 并更新 Redux 存储。现在,如果我点击后退按钮或尝试通过 react-router-dom(history.go(-1)
) 返回,我的页面会抛出此错误:
这是应用程序的 working CodeSandbox link。以下是重现错误的方法:
- 在输入框中输入一些文字。
- 然后点击搜索按钮。
- 单击浏览器按钮或单击页面上的后退按钮。
- 观察主页是空白的。并显示上述错误。
请注意,如果我不更新商店然后返回上一页,那么一切正常。
在您的文件中 app/screens/EmployeeDetails/employeeDetails.jsx
您有:
useEffect(() => dispatch(fetchEmployee(name)), [])
此处的隐式 return 试图将分派的结果用作 useEffect
的 cleanup
。你的错误发生是因为它试图调用清理函数,因为你没有 return undefined
,但是你 return 编辑了 Promise
而不是 function
useEffect
预期用于清理(因此错误:'is not a function')。
您应该添加大括号以避免隐式 return:
useEffect(() => { dispatch(fetchEmployee(name)) }, [])
我在我的 React 项目中遇到了一个奇怪的错误。如果我从主页转到下一页,一切正常。下一页点击 API 并更新 Redux 存储。现在,如果我点击后退按钮或尝试通过 react-router-dom(history.go(-1)
) 返回,我的页面会抛出此错误:
这是应用程序的 working CodeSandbox link。以下是重现错误的方法:
- 在输入框中输入一些文字。
- 然后点击搜索按钮。
- 单击浏览器按钮或单击页面上的后退按钮。
- 观察主页是空白的。并显示上述错误。
请注意,如果我不更新商店然后返回上一页,那么一切正常。
在您的文件中 app/screens/EmployeeDetails/employeeDetails.jsx
您有:
useEffect(() => dispatch(fetchEmployee(name)), [])
此处的隐式 return 试图将分派的结果用作 useEffect
的 cleanup
。你的错误发生是因为它试图调用清理函数,因为你没有 return undefined
,但是你 return 编辑了 Promise
而不是 function
useEffect
预期用于清理(因此错误:'is not a function')。
您应该添加大括号以避免隐式 return:
useEffect(() => { dispatch(fetchEmployee(name)) }, [])