web-dev-qa-db-fra.com

Comment concaténer des composants JSX dans React Native

Par exemple, je veux montrer une liste de noms. Je voulais donc faire quelque chose comme ça:

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

Cependant, ce n'est pas valable. Ce qui m'amène à ma question: comment concaténer une quantité dynamique de composants JSX dans React Native.

37
Isaac Paul

Chiffres Je le comprends dès que je demande stackoverflow. Le code doit être placé dans un tableau:

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

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

Il y a aussi plus d'informations ici: http://facebook.github.io/react/docs/multiple-components.html#dynamic-children

79
Isaac Paul

Peut-être d'une manière plus élégante:

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
象嘉道