我将旧项目React.createComponent
中的项目转换为新的ES6类定义。我有以下部件:React - 在创建JSX组件阵列时,对象无效作为React子项
class AnswerFrame extends React.Component {
constructor(props) {
super(props);
}
render() {
var props = this.props;
var selectedNumbers = props.selectedNumbers.map(function (i) {
return (
<span onClick={props.unselectNumber.bind(null, i)}>
{i}
</span>
)
});
return (
<div id="answer-frame">
<div className="well">
{selectedNumbers}
</div>
</div>
);
}
};
的想法是定义一个数组,selectedNumbers
这是跨距,每个具有一个onclick事件的阵列。这些然后被渲染。
此代码工作正常转换为ES6之前,但现在是给我下面的错误:
Error: Objects are not valid as a React child
(found: object with keys {dispatchConfig, _targetInst, nativeEvent, type, target, currentTarget, eventPhase, bubbles, cancelable, timeStamp, defaultPrevented, isTrusted, view, detail, screenX, screenY, clientX, clientY, ctrlKey, shiftKey, altKey, metaKey, getModifierState, button, buttons, relatedTarget, pageX, pageY, isDefaultPrevented, isPropagationStopped, _dispatchListeners, _dispatchInstances}).
If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons. Check the render method of `AnswerFrame`.
这是为什么不工作了?
什么该数组包含,其数组''数组' r/string'还是'object'数组?你能显示'console.log(this.props.selectedNumbers)'的结果吗? –
我觉得这个消息是关于'this.props.selectedNumbers'的内容。你确定有数字吗? –
也许缺少span元素中的'key'属性会导致这个问题? –