返回(派遣)什么都不做

时间:2021-03-10 21:25:11

标签: javascript reactjs redux reducers

我有一个运行它的组件

 import { handleAddQuestion } from '../actions/questions';

 handleAddQuestion(optionOneText, optionTwoText, author)

actions/questions我有

import { _saveQuestion } from '../utils/_DATA';
export function handleAddQuestion (optionOneText, optionTwoText, authedUser) {
  console.log("before")
  return (dispatch) => {
    console.log("after")
    _saveQuestion({optionOneText, optionTwoText, author: authedUser}).then((question) => {
      let qid = question.id
      dispatch(saveUserQuestion(authedUser, qid))
      dispatch(addQuestion(question))
    })
  }

}

我在控制台中得到 before 但不是 after 没有触发任何动作,无论我改变什么都没有任何反应,就像我不能这样做 return (dispatch) !我在另一个完美运行的地方尝试了同样的事情,记录了数据并触发了动作!这里有什么问题!!!!!!!!!

更多信息_DATA_.js

export function _saveQuestion (question) {
  return new Promise((res, rej) => {
    const authedUser = question.author;
    const formattedQuestion = formatQuestion(question);

    setTimeout(() => {
      questions = {
        ...questions,
        [formattedQuestion.id]: formattedQuestion
      }
      
      users = {
        ...users,
        [authedUser]: {
          ...users[authedUser],
          questions: users[authedUser].questions.concat([formattedQuestion.id])
        }
      }

      res(formattedQuestion)
    }, 1000)
  })
}

reducers/questions.js

export function questions(state = {}, action) {
    switch (action.type) {
      case ADD_QUESTION:
        const { question } = action;
        return {
            ...state,
            [question.id]: question,
        };
    ///

有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

您在此处返回了所谓的 thunk - 并且 thunk 仅在实际分派时才会执行。将其与其他地方的调用方式进行比较。

正确的称呼是

 dispatch(handleAddQuestion(optionOneText, optionTwoText, author))