// 这是reducer
export const requestUserInfo = (state = {}, action) => {
switch(action.type) {
case 'HEADER_RECEIVE_USERINFO':
console.log(action.data)// 有值
return Object.assign({}, state, action.data)
break
default:
return state
}
}
// 这是action
function receiveUserInfo (data) {
return {
type: 'HEADER_RECEIVE_USERINFO',
data
}
}
export function requestUserInfo () {
return dispatch => {
return axios.post('/user/getScores', qs.stringify({
token: token,
uid: uid
}))
.then(res => {
if(res.data.status !== 200) {
message.error(res.data.message)
return state
}
return { ...res.data.attachment}
})
.then(data => {
dispatch(receiveUserInfo(data))
})
}
}
L'action et le réducteur peuvent être exécutés normalement. J'ai surveillé le magasin dans le routeur, mais le magasin n'a jamais changé. Ai-je écrit quelque chose de mal quelque part ?
Quelqu'un s'il vous plaît, aidez-moi, je suis bloqué sur ce problème depuis une journée entière et je ne sais pas quel est le problème
Object.assign est une copie superficielle et ne traitera que la première couche
state = {
}
La valeur de retour de votre action.data est-elle un objet ?