警告:<未知组件=“”>由[未知]和[未知]

时间:2015-06-26 07:06:21

标签: javascript google-chrome reactjs google-chrome-devtools reactjs-flux

我在使用react时遇到此错误:

Warning: <Unknown Component /> is being rendered by both [Unknown] and [Unknown] using the same key (null) in the same place. Currently, this means that they don't preserve state. This behavior should be very rare so we're considering deprecating it. Please contact the React team and explain your use case so that we can take that into consideration.
Warning: setState(...): Can only update a mounted or mounting component. This usually means you called setState() on an unmounted component. This is a no-op.

以下是我们正在做的事情的背景:

我们正在构建一个动态添加和删除容器视图的应用程序。这些视图存储在ViewStore中。有ViewActions可以添加和删除视图。

该商店中管理的所有视图都具有静态ViewKey,该视图唯一用于此视图。要添加视图,您可以拨打ViewActions.addView(<SomeComponent />)。如果视图已存在,则将替换它。

ViewContainer通过侦听ViewStore中的更改来呈现这些视图,并使用设置为ViewKey的key属性呈现视图。

当我添加一个已存在的视图时,对鼠标单击事件的反应,一切都很好。当我从chrome的开发者控制台添加完全相同的视图,并且视图已经存在时,我收到上面提到的警告,但一切正常(可能,因为之前已呈现视图)。

我怎样摆脱这个警告?

编辑:经过一些调查后我发现,只有在Chrome 开发者控制台中触发操作时才会发生这种情况。在Firefox和IE(来自开发人员控制台)中,这没有问题。

为什么我只在Chrome中看到此问题?

1 个答案:

答案 0 :(得分:0)

当您使用开发人员控制台添加它时,它将是另一种类型而不是反应组件。你应该看到,如果你显示类型:

typeof <Component />

在控制台和代码中使用它。你应该看到差异。