const { onLoad } = this.props;
onLoad();
}
render() {
const { navigation, data, isFetching } = this.props;
console.log('isFetching', isFetching);
return (
<Screen>
<SafeAreaView style={styles.container}>
{isFetching ? (
<ActivityIndicator size="large" color="#0000ff" />
) : (
<SectionList
sections={data}
keyExtractor={(item, index) => index}
renderItem={({ item }) => (
<LogBookTable
onPress={navigationActions.navigateToEnterTotal}
{...item}
/>
)}
stickySectionHeadersEnabled={false}
renderSectionHeader={({ section: { title } }) => (
<HeaderTable title={title} />
)}
/>
)}
</SafeAreaView>
</Screen>
);
}
}
function mapStateToProps(state) {
return {
data: state.default.data,
isFetching: state.default.isFetching,
};
}
function mapDispatchToProps(dispatch) {
return {
onLoad: () => dispatch(loadDataActions.fetchData()),
};
}
Тут сага вызывается по сообщению fetchData и сама вызывает этот же action, поэтому и зацикливается Я обычно делаю action=fetchDataRequest, в нем выставляю fetching и на него вешаю сагу, в саге уже yield call вызов api, а put - либо success либо failure
Обсуждают сегодня