通过数组与对象子进行本机映射 - 在反应网络中工作方式不同?

noa*_*dev 14 javascript reactjs react-native

我有这个包含对象的数组:

var tmp_array = [
 { headline: "Test", text: "Test text", send_at: "test date" }
];
Run Code Online (Sandbox Code Playgroud)

现在在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>);
    });
Run Code Online (Sandbox Code Playgroud)

映射完成后,应该呈现如下:

return(
  <View>
     {WholeNews}
  </View>
);
Run Code Online (Sandbox Code Playgroud)

不幸的是,我在iOS模拟器中收到一条警告:

对象作为React子对象无效(找到:具有键{WholeNews}的对象).如果您要渲染子集合,请使用数组,或使用React-addons中的createFrament(object)包装对象.

我不确定我是否完全错过了某些内容或者本机反应只是不支持通过数组映射,如我的示例所示.

zvo*_*ona 33

这应该工作:

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>
  )
}
Run Code Online (Sandbox Code Playgroud)