在React.render()中返回多个元素
我是新手,遇到此问题:
render: function(){ return (
<h3>Account</h3>
<a href="#" onClick={some_event}>Login</a>
<a href="#" onClick={some_event}>Logout</a>
)}
当我这样渲染时,它会给我错误提示 multiple components must wrapt with end
我应该为每个html标签或每一行创建一个componenet,还是可以以这种方式呈现。
有什么建议吗?
回答:
在React <v16.0中,该render
方法只能呈现单个根节点。(
这在v16中已更改,请参见下文)。就您而言,您将返回3个节点。为了解决这个问题,您可以将3个节点包装在一个根节点中:
render: function(){ return (
<div>
<h3>Account</h3>
<a href="#" onClick={some_event}>Login</a>
<a href="#" onClick={some_event}>Logout</a>
</div>
)}
在React v16中,可以render()
返回一个元素数组。
与其他数组一样,您需要为每个元素添加一个键,以避免出现键警告:
render() { return [
<ChildA key="key1" />,
<ChildB key="key2" />,
<ChildC key="key3" />,
];
}
另一种选择是使用Fragment。片段使您可以将子级列表分组,而无需在DOM中添加额外的节点。
render() { return (
<React.Fragment>
<ChildA />
<ChildB />
<ChildC />
</React.Fragment>
);
}
还有一种简短的语法(<>
),用于声明片段:
render() { return (
<>
<ChildA />
<ChildB />
<ChildC />
</>
);
}
以上是 在React.render()中返回多个元素 的全部内容, 来源链接: utcz.com/qa/432648.html