reactjs – “任何使用keyed对象应该被包装在React.addons.createFragment(object)之前被作为一个孩子”

我得到以下警告:

Any use of a keyed object should be wrapped in React.addons.createFragment(object) before being passed as a child.

什么原因导致此错误,如何解决它?

如果您尝试在某些JSX中插入JavaScript对象(而不是JSX元素或字符串),则会发生此错误。

例如,下面是一个小例子,产生警告:

import React from 'react';
window.React = React;
import ReactDOM from 'react-dom';
var content = {foo: 'bar'};
ReactDOM.render(<div>{content}</div>,document.getElementById('some-element'));

虽然错误消息建议使用createFragment来解决这个问题,但更有可能的情况是,您正在将变量内插到一些JSX,你认为是一个字符串或JSX元素,但实际上是一些其他类型的对象。

因为消息不能告诉你JSX中的哪个表达式导致了错误,所以你必须通过其他方法跟踪它 – 例如,通过查看产生错误的提交的源代码控制中的diff,或者通过一次消除一半的JSX元素,直到你找到一个,使错误消失。

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...