如何在本机中的两列中呈现项目?

时间:2018-04-15 18:52:44

标签: reactjs react-native react-native-android react-native-ios

我的本​​地反应技巧是基本的,所以我想在两列中呈现项目,我使用这个库https://github.com/GeekyAnts/react-native-easy-grid

componentDidMount() {

   return fetch(ConfigApp.URL+'json/data_posts.php')
     .then((response) => response.json())
     .then((responseJson) => {
       this.setState({
         isLoading: false,
         dataSource: responseJson
       }, function() {
       });
     })
     .catch((error) => {
       console.error(error);
     });
 }

返回

 return (
 <Grid>
  <Col><FlatList
      data={ this.state.dataSource }
      refreshing="false"
      renderItem={({item}) => 
            <TouchableOpacity activeOpacity={1}>
            <ImageBackground source={{uri: ConfigApp.IMAGESFOLDER+item.post_image}} style={styles.background_card}>
                <LinearGradient colors={['rgba(0,0,0,0.6)', 'rgba(0,0,0,0.9)']} style={styles.gradient_card}>
                        <Text style={styles.category_card}>{item.category}</Text>
                        <Text style={styles.title_card}>{item.post_title}</Text>
                        <Text style={styles.subcategory_card}>{item.date}</Text>
                </LinearGradient>
            </ImageBackground>
            </TouchableOpacity>
 }
    keyExtractor={(item, index) => index}

    />
 </Col>
 </Grid>
    );

1 个答案:

答案 0 :(得分:1)

由于FlatList已经支持numColumns,因此您可以

示例

const data = [1,2,3,4]


  <FlatList 
         data={data}
         numColumns={2}
         renderItem={(item) => <View style={{flex: 1, height: 200, margin: 5, backgroundColor: 'red'}}/>} // Adding some margin
   />