Я получаю данные из API (используя Redux Saga) и хочу показать данные в FlatList. В ComponentDidMount я отправляю действие, чтобы поразить API. Данные получаются без проблем. Но впервые данные не отображаются в плоском списке. Если я ввожу Ctrl + S (Сохранить) в коде VS, данные отображаются. Я хочу установить
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 (состояние) {
return {
movieList : state.movieListReducer.movieList
};
}
функция экспорта mapDispatchToProps (dispatch) { return {
getMovieData: () => dispatch(movieListActions.getMovieData()),
}
}
экспорт по умолчанию connect (mapStateToProps, mapDispatchToProps) (MovieDetailsScreen);
Я пытался добавить загрузчик в плоский список, пока данные не загружаются, но это не работает Обратите внимание, что мне нужно использовать setState ({data: movieList}), потому что в будущем у меня будет больше реализаций, поэтому я не смог использовать this.props.movieList в данных плоского списка