web-dev-qa-db-ja.com

React NativeでJSXコンポーネントを連結する方法

たとえば、名前のリストを表示します。だから私はこのようなことをしたかった:

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

ただし、それは無効です。それは私の質問に私をもたらします:JSXコンポーネントの動的な量をReact Native。

37
Isaac Paul

図私はstackoverflowを尋ねるとすぐにそれを理解します。コードは配列に入れる必要があります。

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

79
Isaac Paul

よりエレガントな方法かもしれません:

return <View>
{_names.map((eachName) => {
  return (
    <TouchableHighlight onPress={() => this._onPressButton}>
      <Text>
      {eachName}
      </Text>
    </TouchableHighlight>
  );
})}
</View>
11
Yinfeng
let returnValue = _names.map(eachName =>
 <TouchableHighlight
    onPress={() => this._onPressButton}>
      <Text>
      {eachName}
      </Text>
  </TouchableHighlight>);
return returnValue;
0
象嘉道