Похоже проблема не в React Native:
export default function counter(state = initState, action) {
switch (action.type) {
case 'COUNTER:INCR':
console.log('INCREMENT');
state.num = state.num++;
return state;
case 'COUNTER:DECR':
console.log('DECREMENT');
state.num = state.num--;
return state;
case 'COUNTER:RES':
state.num = 0;
return state;
default:
return state;
}
}
Вам нужно ознакомиться с принципами Redux.
Нельзя изменять хранилище, аргумент
state
в редьюсере получает
store
вашего приложения, а в каждом блоке case вы должны возвращать либо не измененный store (default), либо
копию вашего хранилища:
export default function counter(state = initState, action) {
switch (action.type) {
case 'COUNTER:INCR':
return {
...state,
num: state.num + 1
};
case 'COUNTER:DECR':
return {
...state,
num: state.num - 1
};
case 'COUNTER:RES':
return {
...state,
num: 0
};
default:
return state;
}
}
Вместо spread оператора
{
...state,
num: state.num + 1
}
можно использовать
Object.assign({}, state, { num: state.num + 1 })