映射函数在 React 中不起作用
我是 React JS 的新手,我正在测试 fiddler 中的一些功能。我不知道为什么我收到指向地图函数的错误。我无法渲染我定义的数组。
相关片段:
{this.props.data.productSpecs.map(function(productSpec){
<b>Category Name:</b> {productSpec};
})}
完整代码:
var productCategory = {
productName: 'SamamgaTV1',
productCategory: 'Television',
productSpecs: ['32inch','black','hd']
};
var ProductComponent = React.createClass({
render: function() {
return( <div>
<h2>Product</h2>
<b>Product Name:</b> {this.props.data.productName}
<h2>Category</h2>
<b>Category Name:</b> {this.props.data.productCategory}
<h2>Specs</h2>
{this.props.data.productSpecs.map(function(productSpec){
<b>Category Name:</b> {productSpec};
})}
</div>);
}
});
ReactDOM.render(
<ProductComponent data={productCategory} />,
document.getElementById('container')
);
I am new to React JS, I was testing out some functions in fiddler. I am not sure why I get an error pointing to the map function. I am not able to render the array i defined.
Relevant snippet:
{this.props.data.productSpecs.map(function(productSpec){
<b>Category Name:</b> {productSpec};
})}
Full code:
var productCategory = {
productName: 'SamamgaTV1',
productCategory: 'Television',
productSpecs: ['32inch','black','hd']
};
var ProductComponent = React.createClass({
render: function() {
return( <div>
<h2>Product</h2>
<b>Product Name:</b> {this.props.data.productName}
<h2>Category</h2>
<b>Category Name:</b> {this.props.data.productCategory}
<h2>Specs</h2>
{this.props.data.productSpecs.map(function(productSpec){
<b>Category Name:</b> {productSpec};
})}
</div>);
}
});
ReactDOM.render(
<ProductComponent data={productCategory} />,
document.getElementById('container')
);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先您错过了
return
,那么您必须返回ONE 元素。在这里,您返回一个
和一个
TextNode
此外,您需要提供一个唯一的密钥。
尝试用这个:
First you missed to
return
, then you must return ONE element.Here you return a
<p>
and aTextNode
Moreover you need to provide a unique key.
Try with this :
您需要从
map
处理程序返回值。如果您不想(或在某些情况下不能)将内容包装在 span 中,您可以创建 &返回片段(非常方便)
You need to return value from
map
handler.If you do not want to (or can't in some situations) wrap content in span, you can create & return fragment (very handy)
您可能使用的是字符串,因此必须使用 split 方法并传入空字符串,例如 myValue.split('').map();
It might be that you are using a string so you have to use the split method and pass in an empty string such as myValue.split('').map();