return(调度)什么都不做

return (dispatch) do nothing

我有一个组件运行这个

 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,
        };
    ///

有帮助吗?

你在这里返回所谓的 thunk - thunks 只有在实际被派遣时才会执行。将其与其他地方的调用方式进行比较。

所以正确的是调用

 dispatch(handleAddQuestion(optionOneText, optionTwoText, author))