如何在React Native中连接JSX组件

时间:2015-04-30 14:28:19

标签: react-native react-jsx

例如,我想显示一个名单。所以我想做这样的事情:

var returnValue;
for (eachName of _names) {
  returnValue += (
  <TouchableHighlight
    onPress={() => this._onPressButton}>
      <Text>
      {eachName}
      </Text>
  </TouchableHighlight>);
}
return returnValue;

然而,这是无效的。这让我想到了一个问题:如何在React Native中连接动态数量的JSX组件。

3 个答案:

答案 0 :(得分:76)

数字我在问堆栈流时很快就弄明白了。代码需要放入一个数组中:

var returnValue = [];
for (var i = 0; i < _names.length; i++) {

  returnValue.push(
  <TouchableHighlight onPress={() => this._onPressButton}>
      <Text>
      {_names[i]}
      </Text>
  </TouchableHighlight>);
}
return returnValue;

此处还有更多信息:http://facebook.github.io/react/docs/multiple-components.html#dynamic-children

答案 1 :(得分:11)

也许是一种更优雅的方式:

return <View>
{_names.map((eachName) => {
  return (
    <TouchableHighlight onPress={() => this._onPressButton}>
      <Text>
      {eachName}
      </Text>
    </TouchableHighlight>
  );
})}
</View>

答案 2 :(得分:0)

let returnValue = _names.map(eachName =>
 <TouchableHighlight
    onPress={() => this._onPressButton}>
      <Text>
      {eachName}
      </Text>
  </TouchableHighlight>);
return returnValue;