React Native - 具有 2 列的 FlatList 未按预期运行
React Native - FlatList with 2 columns are not acting as expected
我正在使用具有 2 列的 FlatList,它工作正常,除了少数几行,它占用完整的行,而不是一半。我在 Android 和 iOS 中都有这个问题。我尝试在 Flatlist Github 中提出问题,但没有用 - https://github.com/facebook/react-native/issues/19156#issuecomment-387200626
<FlatList
vertical
numColumns={2}
extraData={this.state}
data={this.state.bikeCities}
style={styles.CityListView}
showsVerticalScrollIndicator={false}
keyExtractor={(item, index) => index.toString()}
renderItem={({item:rowData, index}) => {
if(rowData.country_id == this.state.selectedCountryId)
{
return(
<TouchableOpacity style={styles.FlatListStyle}
onPress={() => this.props.citySelection(rowData,
this.state.selectedView)}>
<Text style={styles.cityText}> . {rowData.name}</Text>
</TouchableOpacity>
);
}
}}/>
这里是得到结果的截图-
Screenshot
有人可以帮我解决这个问题吗?
您的代码中的问题是您有条件地呈现行项目,我认为您在列表中看到的空白是因为这些项目不满足条件
if (rowData.country_id == this.state.selectedCountryId)
如果您需要根据某些选择来渲染项目,则预先对数据进行预处理/过滤,然后传递给 FlatList。
希望对您有所帮助!
我正在使用具有 2 列的 FlatList,它工作正常,除了少数几行,它占用完整的行,而不是一半。我在 Android 和 iOS 中都有这个问题。我尝试在 Flatlist Github 中提出问题,但没有用 - https://github.com/facebook/react-native/issues/19156#issuecomment-387200626
<FlatList
vertical
numColumns={2}
extraData={this.state}
data={this.state.bikeCities}
style={styles.CityListView}
showsVerticalScrollIndicator={false}
keyExtractor={(item, index) => index.toString()}
renderItem={({item:rowData, index}) => {
if(rowData.country_id == this.state.selectedCountryId)
{
return(
<TouchableOpacity style={styles.FlatListStyle}
onPress={() => this.props.citySelection(rowData,
this.state.selectedView)}>
<Text style={styles.cityText}> . {rowData.name}</Text>
</TouchableOpacity>
);
}
}}/>
这里是得到结果的截图-
Screenshot
有人可以帮我解决这个问题吗?
您的代码中的问题是您有条件地呈现行项目,我认为您在列表中看到的空白是因为这些项目不满足条件
if (rowData.country_id == this.state.selectedCountryId)
如果您需要根据某些选择来渲染项目,则预先对数据进行预处理/过滤,然后传递给 FlatList。
希望对您有所帮助!