【发布时间】:2020-06-20 15:58:10
【问题描述】:
我从 API 获取数据(使用 Redux Saga),我想在 FlatList 中显示数据。在 ComponentDidMount 中,我正在调度操作以命中 API。数据没有任何问题。但是第一次,数据没有显示在平面列表中。如果我在 VS 代码数据显示中输入 Ctrl + S(保存)。我想设置
class MovieDetailsScreen extends Component {
constructor(props) {
super(props);
this.state = {
data:[],
};
}
componentDidMount(){
this.props.getMovieData();
if(this.props.movieList){
this.setState({data:movieList})
}
}
renderItem = ({ item }) => {
return(
<View style={styles.mainContainer}>
<View style={styles.textContainer}>
<Text >{item.movieName}</Text>
<Text >{item.movieDescription}</Text>
</View>
)
}
render() {
return (
<View >
<FlatList
keyExtractor={(item, index) => index.toString()}
data={this.state.data}
renderItem={this.renderItem}
/>
</View>
);
}
}
函数 mapStateToProps(state) {
return {
movieList : state.movieListReducer.movieList
};
}
导出函数 mapDispatchToProps(dispatch) { 返回{
getMovieData: () => dispatch(movieListActions.getMovieData()),
}
}
导出默认连接( mapStateToProps, mapDispatchToProps )(MovieDetailsScreen);
我尝试在 flatlist 中添加一个加载器,直到数据被加载,但它不起作用。请注意,我需要使用 setState({data:movieList}) 因为将来我有更多的实现,所以我不能在 flatlist 数据中使用 this.props.movieList
【问题讨论】:
-
尝试添加
extraData={this.state.data}。在reactnative.dev/docs/flatlist#extradata 阅读有关该道具的更多信息
标签: react-native react-native-flatlist