Reactjs 正在从action.payload获取[object]
当我分派getUser操作生成器时。我的代码有什么问题吗Reactjs 正在从action.payload获取[object],reactjs,redux,Reactjs,Redux,当我分派getUser操作生成器时。我的代码有什么问题吗 //ACTION export const getUser = (uid) => dispatch =>{ console.log('hellow from getuser'); return axios .get(`url/${uid}`) .then((res) =>{ const userData = res.dat
//ACTION
export const getUser = (uid) => dispatch =>{
console.log('hellow from getuser');
return axios
.get(`url/${uid}`)
.then((res) =>{
const userData = res.data;
console.log(userData);
dispatch({
type: USER_DETAILS,
userData
});
}
)
};
//REDUCER
const userReducerDefaultState = [];
const userReducer = (state = userReducerDefaultState,
action) =>{
console.log(action.userData); //*1
switch(action.type){
case 'USER_DETAILS':{
console.log('hi'+{...action.userData}); //*2
return[
...state,
action.userData
]
}
当我调度getUser时,我从*2 console.log获取“Hi[object object]”。
但是从*1 Console.log获得了以下数据。这也是来自*2的所需数据
bio:null
followers:[]
followings:[]
name:"saheb"
posts:(5) [{…}, {…}, {…}, {…}, {…}]
__v:0
_id:"y08RxtsHeacQTwiuNTAA"
你可以这样做
console.log('hi',{...action.userData})
+
运算符将通过调用toString()
方法将参数强制为字符串。在控制台中尝试({}).toString()
。它将返回“[object]”。所以,这不应该太令人惊讶。如果要将对象记录到控制台,则需要将其作为单独的参数(如@Zenp所建议的)传递,或者将其记录到新的控制台语句中。