我正在努力学习Brad Travery关于MERN堆栈的教程。在使用redux时,他大部分时间都使用调度功能。
例如,这里有userAction.js,
import axios from 'axios'
import { USER_LOGIN_FAIL, USER_LOGIN_REQUEST, USER_LOGIN_SUCCESS } from '../constants/userConstants'
export const login = (email, password) => async (dispatch) => {
try {
dispatch({
type: USER_LOGIN_REQUEST
})
const config = {
headers: {
'Content-Type': 'application/json'
}
}
const { data } = await axios.post('/api/users/login', {email, password}, config)
dispatch({
type: USER_LOGIN_SUCCESS,
payload: data
})
localStorage.setItem('userInfo', JSON.stringify(data))
} catch (error) {
dispatch({
type: USER_LOGIN_FAIL,
payload:
error.response && error.response.data.message ? error.response.data.message : error.message,
})
}
}
dispatch
执行一个操作并"给出";它到redux存储,这反过来导致redux存储执行reducers并导致存储中的更改。
也就是说,你正在学习的教程正在教授一种可怕的过时风格的Redux。现代Redux看起来非常不同-请按照官方的Redux教程进行操作。
请阅读的核心概念
dispatch
只是运行动作