Maison > Questions et réponses > le corps du texte
// 这是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
習慣沉默2017-06-12 09:23:45
Object.assign est une copie superficielle et ne traitera que la première couche
state = {
a: name,
b: {
child: {} // 无论child怎么改变都不会触发state的change, 因为b的引用没有变
}
}
La valeur de retour de votre action.data est-elle un objet ?