Подтвердить что ты не робот

Как объединить компоненты JSX в React Native

Например, я хочу показать список имен. Поэтому я хотел сделать что-то вроде этого:

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

Однако это неверно. Который подводит меня к моему вопросу: Как объединить динамическое количество компонентов JSX в React Native.

4b9b3361

Ответ 1

Цифры Я выясняю это, как только я попрошу 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

Ответ 2

Возможно, более элегантный способ:

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

Ответ 3

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