Как я могу передать значение действию, используя логику - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть действие, которое выглядит так

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) 

это не дает мне ошибки, но я должен быть в состоянии передать значение в него.

1 Ответ

0 голосов
/ 14 сентября 2018

Да, у вас несоответствие между вашим "именованным экспортом" и "импортом по умолчанию". Они должны быть одного вида.

Итак, если у вас есть export const setTokenTimeout, который является именованным экспортом, вам нужно иметь import {setTokenTimeout} from "./actions/token", который является именованным импортом.

...