// 这是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))
})
}
}
Sowohl Aktion als auch Reduzierung können normal ausgeführt werden. Ich habe den Speicher im Router überwacht, aber der Speicher hat sich nie geändert. Habe ich irgendwo etwas falsch geschrieben?
Bitte hilft mir jemand. Ich stecke schon einen ganzen Tag in diesem Problem fest und weiß nicht, was das Problem ist
Object.assign 属于浅拷贝,只会处理第一层
state = {
}
你的action.data的返回值是不是一个对象?