как написать for l oop внутри оператора return в реакции native - PullRequest
0 голосов
/ 18 июня 2020

, поэтому я хочу отображать несколько материалов на экране, используя для l oop, и это, похоже, не работает. с тем, что я хочу сделать, используя метод карты, не сработает, потому что у меня нет массива. вот что я пробовал.

{() => {
          for (let i = 0; i < cartnumpass; i++) {
            <View style={styles.flyingcard}>
              <View style={styles.amt}>
                <TouchableOpacity>
                  <Icon name="ios-add" type="ionicon" color="#0079b1" />
                </TouchableOpacity>
                <Text style={{fontSize: RFPercentage(2.5)}}>1</Text>
                <TouchableOpacity>
                  <Icon name="ios-remove" type="ionicon" color="#ffaaaa" />
                </TouchableOpacity>
              </View>
              <View style={styles.img}>
                <Image
                  source={require('../resources/Cameras.jpg')}
                  style={styles.image}
                />
              </View>
              <View style={styles.des}>
                <Text style={styles.heading}>Fuhr Camera</Text>
                <Text style={styles.sub}>N 2,000.00 NGN</Text>
                <TouchableOpacity
                  onPress={() => modalfunc(true)}
                  style={{
                    justifyContent: 'space-between',
                    borderColor: '#555',
                    borderWidth: 1,
                    borderStyle: 'solid',
                    width: '90%',
                    alignItems: 'center',
                    flexDirection: 'row',
                    padding: '2%',
                  }}>
                  <Text style={{fontSize: RFPercentage(1.7)}}>
                    Rent Duration
                  </Text>
                  <Icon
                    name="ios-add-circle"
                    type="ionicon"
                    color="#888"
                    size={15}
                  />
                </TouchableOpacity>
              </View>
              <View style={styles.cancel}>
                <TouchableOpacity style={styles.btn}>
                  <Icon name="ios-close" type="ionicon" color="#fff" />
                </TouchableOpacity>
              </View>
            </View>;
          }
        }}

с этим кодом ничего не отображается на экране, я не знаю, можно ли написать al oop в этой форме

спасибо в аванс

1 Ответ

3 голосов
/ 18 июня 2020

Вы бы так не поступили, вы бы сделали что-то вроде:

return new Array(cartnumpass).fill().map((_, index) => {
    <View key={index} style={styles.flyingcard}>
       // ...
    </View>
});

Или вы могли бы сделать что-то вроде:

const views = [];
for (let i = 0; i < cartnumpass; i++) {
    views.push(
        <View key={i} style={styles.flyingcard}>
            // ...
        </View>
    );
}
return views;
...