У меня, кажется, странная ошибка. В настоящее время я использую Redux изоморфно и также включаю redux-thunk
в качестве промежуточного программного обеспечения для асинхронных действий. Вот что мой магазин конфигурация выглядит следующим образом:Приложение Isomorphic Redux не регистрирует Redux-Thunk?
// Transforms state date from Immutable to JS
const transformToJs = (state) => {
const transformedState = {};
for (const key in state) {
if (state.hasOwnProperty(key)) transformedState[key] = state[key].toJS();
}
return transformedState;
};
// Here we create the final store,
// If we're in production, we want to leave out development middleware/tools
let finalCreateStore;
if (process.env.NODE_ENV === 'production') {
finalCreateStore = applyMiddleware(thunkMiddleware)(createStore);
} else {
finalCreateStore = applyMiddleware(
createLogger({transformer: transformToJs}),
thunkMiddleware
)(createStore);
}
// Exports the function that creates a store
export default function configureStore(initialState) {
const store = finalCreateStore(reducers, initialState);
if (module.hot) {
// Enable Webpack hot module replacement for reducers
module.hot.accept('.././reducers/index',() => {
const nextRootReducer = require('.././reducers/index');
store.replaceReducer(nextRootReducer);
});
}
return store;
}
Странная часть о том, что я не думаю, что нет ничего плохого с этим файлом, потому что мой createLogger
применяются только штрафом. Он регистрирует все мои действия и состояние, но в тот момент, когда я возвращаю функцию вместо объекта в создателе действия, выполнение теряется. Я пытался бросить в debugger
заявления, которые никогда не попадают и не переупорядочивают промежуточное программное обеспечение, похоже, не помогают.
createUser(data) {
// This `debugger` will hit
debugger;
return (dispatch) => {
// This `debugger` will NOT hit, and any code within the function will not execute
debugger;
setTimeout(() => {
dispatch(
AppActionsCreator.createFlashMessage('yellow', 'Works!')
);
}, 1000);
};
},
Кто-нибудь испытал что-то подобное раньше?
Возможно проиллюстрируйте свой ответ кодом. Какое ваше решение и, возможно, даже объясните, что пошло не так, чтобы другие могли избежать ошибки. –