2015-02-06 20 views
0

我正在创建我的第一个React应用程序,我正在努力解决一个我不太明白的错误。我安装一个组件(A),然后安装另一个组件(B),然后安装另一个组件(C)。用户交互导致父组件(A)在没有任何问题的情况下被卸载(使用React.unmountComponentAtNode())。我再重新安装组件以重新开始活动,并开始在调用setState()时发生错误:如何处理React组件层次结构以确保状态清理?

未捕获的错误:不变的违规:replaceState(...):只能更新已安装或已安装的组件。

我也会得到与状态变量相关的错误,保持它们的值与以前的练习。

所以我的问题是,我如何确保没有以前的练习剩下的状态?根据React文档,React.unmountComponentAtNode()将清除组件的状态,但我清楚地看到未安装组件的孩子在第二次安装后会携带状态。

附加信息:我使用的NodeJS与

+0

你能隔离问题并分享jsFiddle吗? – nilgun 2015-02-07 07:42:17

回答

0

阵营卸载它仍然在虚拟DOM和仍然能够接收socket.io命令组件后。我能够使用isMounted()来防止错误。