繁体   English   中英

在 FlatList 中反应原生 onPress 按钮

[英]React Native onPress button in FlatList

也许这是一个菜鸟问题,但我不能为 FlatList 制作一个 onPress 来反应原生,由单独的文件 popularData 和 categoriesData 中的一个数组项组成。 在popularData中,我有一个数组,其中包含是否选择了boolean类型的信息,我只想获取数组的此信息,并将其放入onPress方法以将所选内容更改为true或false,如果按下并将其更改为另一个,并进一步获取该数据并将其获取到某个变量。 你能帮我么? 我已经尝试使用handleClick,导航,但仍然无法达到我想要的这些是代码:文件1,其中包含数组中的信息:

const popularData = [
    {
        id: '1',
        image: require('../images/pizza1.png'),
        title: 'Salami Pizza',
        weight: '600 gr',
        rating: '5.0',
        cena: '26,99 zł',
        rozmiarNazwa: 'Średnia',
        rozmiarNumer: '42 cm',
        ciasto: 'Cienkie',
        czasDostawy: '~30 min',
        skladniki: [

            {
                id: '0',
                name: 'Sos pomidorowy',
                image: require('../images/skladniki/sosczerwony.png'),
                selected: true,
            },

            {
                id: '1',
                name: 'Ser',
                image: require('../images/skladniki/ser.png'),
                selected: true,
            },

            {
                id: '2',
                name: 'Salami',
                image: require('../images/skladniki/salamenapoli.png'),
                selected: true,
            },

            {
                id: '3',
                name: 'Oliwki zielone',
                image: require('../images/skladniki/zieloneoliwki.png'),
                selected: true,
            },

            {
                id: '5',
                name: 'Pieczarki',
                image: require('../images/skladniki/pieczarki.png'),
                selected: false,
            },

            {
                id: '6',
                name: 'Tabasco Habanero',
                image: require('../images/skladniki/tabascobordowe.png'),
                selected: false,
            },
        ],
    },
export default popularData;

另一个文件应用程序屏幕

const renderSkladnikiItem = ({ item }) => {
    return (
        
      <View style={[styles.skladnikiItemWrapper, {
          backgroundColor: item.selected ? colors.glowny : colors.tlo,
          marginLeft: item.id === '0' ? 20 : 5, 
      } ]}>
        <Image source={item.image} style={styles.skladnikImage} />
      </View>
    );
    
  };

{/* Skladniki */}
      <View style={styles.skladnikiWrapper}>
        <Text style={styles.skladnikiTytul}>Składniki</Text>
        <View style={styles.sklanikiListaWrapper}>
          <FlatList
            data={item.skladniki}
            renderItem={renderSkladnikiItem}
            keyExtractor={(item) => item.id}
            horizontal={true}
            showsHorizontalScrollIndicator={false}
            decelerationRate="normal"
          />
        </View>
      </View>

 

您可以将您的View包含在TouchableOpacityTouchbaleHighlight中以应用onPress

const renderSkladnikiItem = ({ item }) => {
    return (
        <TouchableHighlight
      key={item.key}
      onPress={() => onPress(item)}
        >
      <View style={[styles.skladnikiItemWrapper, {
          backgroundColor: item.selected ? colors.glowny : colors.tlo,
          marginLeft: item.id === '0' ? 20 : 5, 
      } ]}>
        <Image source={item.image} style={styles.skladnikImage} />      
       </View>
      </TouchableHighlight>
    );
    
  };

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM