通过带有对象子级的数组进行 React 本机映射 - 工作方式与在 react web 中不同
React native mapping through array with object childs - working different as in react web?
我有这个数组,其中包含对象:
var tmp_array = [
{ headline: "Test", text: "Test text", send_at: "test date" }
];
现在在 Web 反应环境中,我能够通过这个数组进行映射并将其值返回到一个变量,然后可以渲染该变量。
所以我使用了相同的方法:
var i = -1;
var WholeNews = tmp_array.map(function(news){
i++;
return(
<View key={i}>
<Text>{news.headline}</Text>
<View>
<Text>{news.text}</Text>
</View>
</View>);
});
映射完成后,应呈现如下:
return(
<View>
{WholeNews}
</View>
);
不幸的是,我在iOS模拟器中收到一条警告,上面写着:
我对象作为 React 子项无效(找到:带有键 {WholeNews} 的对象)。如果你打算渲染一个子项的集合,请使用数组代替,或者使用 React-addons 中的 createFrament(object) 包装对象。
不确定我是否完全错过了一些东西,或者 react native 根本不支持像我的例子那样通过数组进行映射。
这应该有效:
WholeNews() {
return tmp_array.map(function(news, i){
return(
<View key={i}>
<Text>{news.headline}</Text>
<View>
<Text>{news.text}</Text>
</View>
</View>
);
});
}
render() {
return(
<View>
{this.WholeNews()}
</View>
)
}
尝试forEach
方法而不是map
:
var WholeNews =[];
tmp_array.forEach(function(news, i){
WholeNews.push(
<View key={i}>
<Text>{news.headline}</Text>
<View>
<Text>{news.text}</Text>
</View>
</View>);
});
并注意从哪里可以获得i
索引。
相关文章:
- 鼠标输入鼠标离开没有按照我认为应该的方式工作
- 针对移动设备的JQuery下拉列表没有以应有的方式工作
- 多行工具提示无法以编程方式工作
- 拼接没有按照我预期的方式工作
- 为什么需要 CDATA,而不是在任何地方都以相同的方式工作
- Javascript hide/show 切换在 Opera 中是双向的,但在其他浏览器中只能以一种方式工作
- 为什么这个正则表达式不能按照我想要的方式工作
- blur() 无法以编程方式工作 |但在从用户启动时会这样做
- jquery调整大小函数没有按照我期望的方式工作
- Javascript:逗号运算符,var,以及为什么它以这种方式工作
- @media查询以奇怪的方式工作
- 无法让 append() 以正确的方式工作
- AngularJS - CSS 动画只能以一种方式工作
- JavaScript parentnode.id 没有按照我预期的方式工作
- Packery - jquery show/hide有效,但不能以其他方式工作
- .filter() 中的函数没有按我想要的方式工作
- 如何实现 emit 以同步方式工作
- javascript对象声明没有按我希望的方式工作
- 我的查询获胜'因为一个剧本,它不能工作(它以错误的方式工作)!?但为什么呢?SESSIONS和PHP
- html5本地存储没有按我想要的方式工作