【发布时间】:2019-02-18 15:36:51
【问题描述】:
我有一个看起来像这样的动作
export const setTokenTimeout = date => ({
type: SET_TOKEN_TIMEOUT,
date
我想使用 Redux Logic 在一些中间件中调度它,看起来像这样
const requestLogin =
createLogic({
type: LOGIN_REQUEST,
latest: true,
process({ axios, push, action, getState }, dispatch, done ) {
const { code, user } = action.payload
const config = configure(progress(LOGIN_REQUEST)(dispatch))
return axios.post(Api.AUTH_LOGIN, { code, user }, config)
.then(res => {
dispatch(handleSuccess(LOGIN_SUCCESS)(res))
dispatch(push(Route.WELCOME))
dispatch(setTokenTimeout())
done()
}).catch( e => {
window.alert(e)
dispatch(handleFailure(LOGIN_FAILURE)(e))
dispatch(reset('LoginForm'))
done()
})
}
我想在这样的操作中传递一个日期
const date = new Date()
dispatch(setTokenTimeout(date))
但是当我尝试调度我的 setTokenTimeout 函数时,它会捕捉到一个错误,上面写着
TypeError: (0 , _token2.default) is not a function
它怎么可能不是一个函数?
如果我这样做
dispatch(setTokenTimeout)
它不会给我一个错误,但我需要能够将一个值传递给它。
【问题讨论】:
-
如何导入
setTokenTimeout()?您使用的是“命名导入”还是“默认导入”? -
从 '../actions/token' 导入 setTokenTimeout
-
setTokenTimeout不是默认导出,所以你想要:import {setTokenTimeout} from '../actions/token'
标签: reactjs redux react-redux redux-logic