我正在尝试学习react-redux。为了调用外部rest API,我使用了thunk中间件。
但是语法如此让我感到困惑,如果有人可以解释我,我将不胜感激。
"aaaaaa-f2q09-bbbbb"
"aaaaaa-f2q2008-bbbbb"
"aaaaaa-f4q-2008-fffff"
"f4q-aaaaa-eeeeee-2008"
"q2-aaaaaaaaa-eeeeeee-2005"
"aaaaaaaa-3q-2008-rrrrrrr"
因此,为了从外部API获得响应,我正在调用export function listTodos() {
return (dispatch) => axios.get("http://localhost:5001/todos")
.then(response => {
console.log(response.data);
dispatch(getTodos(response.data));
})
}
export function _listTodos(todos) {
return {
type: 'LIST_TODOS',
todos: todos
}
}
函数,该函数调度listTodos
函数返回的操作。
让我感到困惑的部分是语法(也许是因为它不是ES6,我对此不太熟悉)。
返回如何获取参数,调度?
此调度的发源地,致电
时没有传递任何内容listTodos
为什么我什至需要退货,不应该从
listTodos
内派出足够的行动
答案 0 :(得分:0)
Redux仅接受纯JavaScript对象进行分发。笨拙的中间件通过允许您为分派提供功能来克服了这一问题。 在此示例中,实质上,您正在做的是返回对将由thunk执行的调度的函数引用。
返回如何获取参数,调度?
此调度的发源地,我打电话给listTodos时没有传递任何东西
当thunk遇到一个函数时,它将执行该函数并将传递作为参数传递,以便您可以在函数中实际使用它来进行调度(_listTodos(todos))。 因此,笨拙的人会做这样的事情
if(typeof action === 'function') {
//Reason why it takes a dispatch parameter
//And thunk is the one who sends it to the function
action(dispatch);
}
其中action是您从listTodos()返回的函数
为什么我什至需要退货,不应该从那时开始就分派足够的行动
需要返回以赋予thunk功能,以便它可以执行上述操作。