Я новичок в реакции-родной, поэтому, пожалуйста, будьте добры. Мой редуктор обновляется, но жизненные циклы компонентов не запускаются. У меня есть console.log () внутри функции mapStateToProps в компоненте, который работает для всех обновлений магазина, но ничего не происходит в компоненте
Фрагмент моего компонента
class CompaniesComponent extends React.Component {
state = {refreshing: false}
static getDerivedStateFromProps (props, state) {
return {refreshing: props.data.loading};
}
onRefresh =() => {}
render () {
return (
<ScrollView bounces={false} refreshControl={<RefreshControl title="Loading..." refreshing={this.props.data.loading} onRefresh={()=>this.onRefresh()} /> } >
<Card>
<CardItem header bordered>
<Icon active name="business" />
<Text>Companies</Text>
</CardItem>
<List>
{this.renderComponentItems()}
</List>
</Card>
</ScrollView>
)
}}
const mapStateToProps = (state) => {
console.log("myState", state);
let data = state.api.data[constants.analytics.resources.profile];
console.log(data);
return { data }}
const mapMethodsToProps = {retrieveData, setCompany }
export default connect(mapStateToProps, mapMethodsToProps)(CompaniesComponent);
Мой редуктор
const apiReducer = (state=initialState, action) => {
switch(action.type) {
case actions.FETCH_DATA: {
let copy = Object.assign({}, state);
copy.data[action.payload.resource] = copy.data[action.payload.resource] || {};
copy.data[action.payload.resource]['loading'] = true;
return {
...copy
}
}
case actions.FETCH_DATA_FAILURE: {
let copy = Object.assign({}, state);
copy.data[action.payload.resource]['loading'] = false;
copy.data[action.payload.resource]['error'] = action.payload.error;
return {
...copy
}
}
case actions.FETCH_DATA_SUCCESS: {
let copy = Object.assign({},state);
copy.data[action.payload.resource]['loading'] = false;
copy.data[action.payload.resource]['data'] = action.payload.data;
return {
...copy
}
}
case actions.CLEAR_API_DATA: {
return {
...initialState
}
}
default: {
return state;
}
}}export default apiReducer;