React.jsthis.props.data.map()不是函数
React.js this.props.data.map() is not a function
我正在处理react,并试图解析和呈现json对象。现在,我只是用一个硬编码的对象来设置它进行测试,而不是从ajax调用中获取它。
<script type="text/jsx">
var Person = React.createClass({
render: function() {
return (
<div>
<p className="personName"></p>
<p className="personSA1"></p>
<p className="personSA2"></p>
<p className="zip"></p>
<p className="state"></p>
<p className="country"></p>
</div>
);
}
});
var PersonDiv = React.createClass({
render: function() {
var personNodes = this.props.data.map(function(personData){
return (
<Person
personName={personData.person.firstname}
personSA1={personData.person.street1}
personSA2={personData.person.street2}
zip={personData.person.zip}
state={personData.person.state}
country={personData.person.country}>
</Person>
)
});
return (
<div>
{personNodes}
</div>
);
}
});
React.render(
<PersonDiv data={data} />,
document.getElementById('jsonData')
);
我正在用设置数据变量
<script>
var data = "[" + '<%=data%>' + "]";
</script>
数据对象是我在portlet的java端创建的对象。我知道json是有效的,因为我可以使用json.parse(json)来解析和遍历字符串,但我一直认为map()不是一个函数。
您的数据似乎不是json对象,而是字符串。您可能需要运行data = JSON.parse(data);
将数据转换为实际的javascript对象才能使用它
<script>
var data = "[" + '<%=data%>' + "]";
console.log(data);
console.log(JSON.parse(data));
</script>
你应该注意到区别。
您正在将console.log
的结果作为第一个参数传递给React.render
:
React.render(
console.log("inside render"),
<PersonDiv data={data} />,
document.getElementById('jsonData')
);
应该是这样的:
console.log("will render");
React.render(
<PersonDiv data={data} />,
document.getElementById('jsonData')
);
相关文章:
- 回调函数中传递参数的困难(Google Map API Markers)
- 鉴于 for..在构造中,库提供的函数(如 jQuery.map() 或 _.each())有什么用
- 在.map函数中使用react道具
- Map函数没有't迭代所有子项
- 在CouchDB Map函数中发出日期时-对日期对象调用的内容
- 在javascript函数中访问Google map api
- Array.from 在 Array#map 中不能用作直接回调函数
- 如何将回调函数添加到 .map 方法
- TypeError:map[msg[1]]不是函数
- angular google maps TypeError:$scope.map.control.refresh不是函数
- MongoDB map/reduce,forEach不是一个函数
- 获得“;jvm.Map不是构造函数“;用于jvectormap
- Javascript作用域规则和mongo-map/reduce函数
- map() 函数如何在数组上工作
- Javascript如何使用高阶函数和Map/Reduce函数来汇总多个数组
- React.jsthis.props.data.map()不是函数
- 使用map函数对具有数字数组的字符串进行解码
- 在 mongo map 中调用外部 javascript 函数(对象)或减少上下文的可能方法
- 使用下划线 js map 函数时,Mongo 引用字段未实例化
- Javascript vs Python 关于 Python 'map()' 函数