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))
我有一个组件运行这个
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))