【发布时间】:2017-12-21 11:09:49
【问题描述】:
我正在使用 React-router-dom 开发一个 React 应用。
我有一个带有一些 react-router-dom 的 <NavLink /> 的菜单,每个都将我带到不同的路线。
在我的主要路线 path="/" 我有 chartComponent 和一个随着随机数据不断变化的图表,如下所示:this.chartChangeId = setInterval(()=> this.setState(data), 1500)。
在我添加之前:
componentWillUnmount(){
clearInterval(this.chartChangeId);
}
到 chartComponent 我的应用没有崩溃,但我收到了这个错误:
警告:只能更新已安装或已安装的组件。这通常意味着您在未安装的组件上调用了 setState、replaceState 或 forceUpdate。这是一个无操作。 请检查 BrainWaveChart 组件的代码。
所以我将它添加到生命周期中。
但是现在,当我点击<NavLink /> 之一以转到另一条路线时,我的应用程序中断,我收到此错误:
未捕获的类型错误:timeout.close 不是函数 在exports.clearTimeout.exports.clearInterval (main.js:14) 在 BrainWaveChart.componentWillUnmount (brainwaveChart.jsx:116) 在 callComponentWillUnmountWithTimer (vendor_f02cab182c1842c98837.js:45235) 在 HTMLUnknownElement.callCallback (vendor_f02cab182c1842c98837.js:37015) 在 Object.invokeGuardedCallbackDev (vendor_f02cab182c1842c98837.js:37054) 在 invokeGuardedCallback (vendor_f02cab182c1842c98837.js:36911) 在safelyCallComponentWillUnmount (vendor_f02cab182c1842c98837.js:45242) 在 commitUnmount (vendor_f02cab182c1842c98837.js:45368) 在 commitNestedUnmounts (vendor_f02cab182c1842c98837.js:45404) 在 unmountHostComponents (vendor_f02cab182c1842c98837.js:45687)
我做错了吗?
【问题讨论】:
标签: javascript reactjs setinterval react-router-dom