我正在创建我的第一个React应用程序,我正在努力解决一个我不太了解的错误。我安装一个组件(A),然后安装另一个组件(B),然后安装另一个组件(C)。用户交互导致父组件(A)卸载没有任何问题(使用React.unmountComponentAtNode())。然后我重新安装组件以重新开始活动,并开始在调用setState()时收到错误:
未捕获错误:不变违规:replaceState(...):只能更新已安装或安装的组件。
我还得到与状态变量相关的错误,保留了之前练习中的值。
所以我的问题是,我如何确保以前的练习中没有剩余的状态?根据React文档,React.unmountComponentAtNode()将清理组件的状态,但是我很清楚地看到卸载组件的子节点在第二次挂载后处于运行状态。
其他信息:我正在使用React with Nodejs
答案 0 :(得分:0)
卸载组件后,它仍保留在虚拟dom中,仍然可以接收socket.io命令。我能够使用isMounted()来防止错误。