Почему мой редуктор не получает мои действия? (Использование React & Redux)
Это мои текущие создатели действий, они работают нормально и возвращают действия как обычно. Я проверил с некоторыми журналами, он работает здесь:
export function stateToEntry() {
return { type: types.STATE_TO_ENTRY, formState: 'entry-mode'};
}
export function stateToEdit() {
return { type: types.STATE_TO_EDIT, formState: 'edit-mode'};
}
export function stateToDelete() {
return { type: types.STATE_TO_DELETE, formState: 'delete-mode'};
}
Это мой текущий редуктор, который не получает мои действия. Я проверил здесь, кажется, что я даже не могу войти в консоль:
import * as types from '../actions/actionTypes';
export default function formStateReducer(state = [], action) {
switch(action.type) {
case types.STATE_TO_ENTRY:
console.log('entry-mode');
return {formState: action.formState};
case types.STATE_TO_EDIT:
//console.log('edit-mode');
return {formState: action.formState};
case types.STATE_TO_DELETE:
//console.log('delete-mode');
return {formState: action.formState};
default:
return state;
}
}
Вот мой комбинированный редуктор. Редуктор местоположений работает нормально, но я получаю нулевое значение на моем formState, поэтому он правильно связан внутри магазина.:
const rootReducer = combineReducers({
locations,
formStates
});
export default rootReducer;
Что я мог пропустить?
1 ответ
Из документов: bindActionCreators
... Превращает объект, значения которого являются создателями действий, в объект с теми же ключами, но с каждым создателем действий, заключенным в диспетчерский вызов, чтобы их можно было вызывать напрямую.
Итак, вы используете это неправильно, попробуйте это:
let foo = {
location: bindActionCreators(locationActions, dispatch),
form: bindActionCreators(formActions, dispatch)
}
// later in your code -- will dispatch that action automatically
foo.location.someActionFromLocationActionsObject()