我正在尝试使用我的React Native组件中的FlatList呈现对象数据列表,但是我得到一个空白的屏幕,控制台上没有任何错误,这就是为什么它很难找到问题的根源这里。使用Redux-Saga方法将数据提供给组件,并将其提供给FlatList,FlatList显示空白屏幕而没有任何错误。要仔细检查FlatList是否正常工作,我在组件中做了一个模型数组并传递给FlatList,它按预期呈现UI。以下是我在这里使用的代码;
=============================================== ======
class Mobile extends Component {
componentDidMount() {
let { readPostsAction } = this.props;
readPostsAction();
}
renderItem = ({ item }) => {
return (
<View>
<TouchableOpacity onPress={() => this.props.navigation.navigate('HomeDetails', { item })}>
<Card>
<CardItem header>
<Text style={styles.titleHeading}>{item.title}</Text>
</CardItem>
<CardItem cardBody>
<Content style={styles.cardContainer}>
<CustomCachedImage
component={FitImage}
source={{ uri: contentURL(item.attachments[0].url) }}
style={{ width: width, height: 200 }}
/>
<HTML tagsStyles={bodyText} html={reduceStringLength(contentText(item.excerpt))} />
</Content>
</CardItem>
</Card>
</TouchableOpacity>
</View>
)
}
keyExtractor = (item, index) => item.id;
render() {
const { dataSource } = this.props;
console.log('this.props', this.props);
return (
<View>
<FlatList
data={dataSource}
keyExtractor={this.keyExtractor}
renderItem={this.renderItem}
/>
</View>
);
}
}
function mapStateToProps({ launchAppReducer }) {
return {
isLoading: launchAppReducer.isLoading,
dataSource: launchAppReducer.data
}
}
export default connect(mapStateToProps, { readPostsAction: actions.readPostsAction })(Mobile);
=============================================== ======
答案 0 :(得分:0)
修改您的FlatList代码并重试
<FlatList
data={dataSource}
extraData={this.props}
keyExtractor={this.keyExtractor}
/>
答案 1 :(得分:0)
在动作中出现问题,我正在解雇readPostsActions
而不是我应该解雇readMobilePostsActions
- 它现在运行正常,谢谢大家所有的输入和帮助。
此致
答案 2 :(得分:0)
您只需要在Flatlist中添加此样式:
<FlatList
style={{height:'100%'}}
data={dataSource}
keyExtractor={this.keyExtractor}
renderItem={this.renderItem}
/>