我有一个看起来像这样的redux动作
export const authFacebook = async () => {
console.log('Dispatching Facebook Auth')
return async (dispatch) => {
dispatch({type: AUTH.AUTH_REQUEST})
const initRequest = new NetworkRequest()
try {
const makeRequest = await initRequest.makeRequest('/auth/facebook')
console.info('Facebook Auth Request', makeRequest)
dispatch({
type: AUTH.AUTH_FACEBOOK,
payload: {
verifiedStatus: makeRequest.data.verifiedStatus || 3 // Email only verified is 3
}
})
} catch (error) {
console.error(error)
}
}
AUTH.AUTH_FACEBOOK
是字符串
export const AUTH = {
AUTH_FACEBOOK: 'AUTH_FACEBOOK',
LOGOUT: 'LOGOUT',
AUTH_ERROR: 'AUTH_ERROR'
}
调度动作时,出现以下错误
index.delta:35439可能的未处理的承诺拒绝(id:0):错误: 动作必须是普通对象。使用自定义中间件进行异步 动作。错误:动作必须是普通对象。使用自定义中间件 进行异步操作。
即使在我的store.js中,我也在使用thunk
import {createStore, applyMiddleware, compose} from 'redux'
import thunk from 'redux-thunk'
import rootReducer from './reducers/rootReducer.r'
const middleware = [thunk]
const initialState = {}
const store = createStore(rootReducer, initialState, compose(applyMiddleware(...middleware)))
export default store
有人可以帮助我弄清楚我在做什么错吗?
答案 0 :(得分:0)
您不必将功能 authFacebook 定义为异步功能。 从第1行删除异步,它应该可以正常工作。