我將舊項目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'屬性會導致這個問題? –