我目前正在使用reactjs来利用React-router,redux,thunk和firebase等技术来应用程序。不幸的是,当我调度一个异步操作时,出现以下错误。
我经历了stackoverflow提出的所有类似问题,但仍然找不到问题。
任何帮助,将不胜感激。
错误:
app.js:54628错误:操作必须是纯对象。使用自定义中间件执行异步操作。在分派(app.js:31576)在Object.fetchBase(app.js:32220)在Object.next(app.js:63640)在app.js:54507在app.js:54622在
package.json
...
"react-router-dom": "^4.1.1",
"react-router-redux": "^4.0.8",
"redux-thunk": "^2.2.0",
"redux": "^3.7.1",
...
store.js
import { createStore, applyMiddleware, compose } from 'redux';
import reduxThunk from 'redux-thunk';
import { routerMiddleware } from 'react-router-redux';
import { browserHistory } from 'react-router-dom';
// Import the root reducer
import allReducers from './reducers';
// import default data
import config from './data/config';
const defaultState = {
events: [],
config,
activeGame: null,
basePath: '',
};
const router = routerMiddleware(browserHistory);
const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
const store = createStore(allReducers, defaultState,
composeEnhancers(applyMiddleware(reduxThunk, router)));
export default store;
Actions.js
...
export const fetchBase = () => {
const organizationRef = database.ref(`users/${auth.currentUser.uid}/organization`);
return dispatch => {
organizationRef.once('value', snapshot => {
dispatch({
type: ActionTypes.FETCH_BASE,
payload: snapshot.val()
});
});
};
}; // fetchBase
...
感谢大家的帮助。我确实找到了问题,并且正在踢自己。上面的代码工作正常,问题出在我注册商店的地方。我正在导入用于测试目的的辅助存储文件。更新真实商店后,我忘了切换到它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句