为了账号安全,请及时绑定邮箱和手机立即绑定

为什么在 react-redux 上未定义 [object Object]

为什么在 react-redux 上未定义 [object Object]

开心每一天1111 2021-12-02 15:57:17
我有一个 arry :classesAll:[0:{id:1,title:'test1'},1:{id:2,title:'test2'}]当我'console.log(this.props.classes.classesAll)'它到控制台时,它不会返回我的数组的异常值。相反,它显示以下内容: undefined [object Object],[object Object]async componentDidMount() {    await this.props.showAllClasses();    console.log("***", this.props.classes.classesAll)  }Redux action:export const showAllClasses = () => {    return async dispatch => {       dispatch(pageLoading(true));            await  Api.get(`classes.php`).then(res => {                //this.state.all = res.data;                const classesAll = res.data.data;                state.classesAll = classesAll;            });       await dispatch(onChangeClasessAll(state.classesAll));       dispatch(pageLoading(false));        };    };    export const onChangeClasessAll = classesAll => {        const type =  CLASSES_ALL;         return   { type , classesAll};      };
查看完整描述

3 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

请改进您的操作并确保您从服务器获取 res.data。


export const showAllClasses = () => dispatch => {

   dispatch(pageLoading(true));

   const res = await Api.get(`classes.php`);

   dispatch(onChangeClasessAll(res.data));

   dispatch(pageLoading(false));

};

然后在渲染方法中控制台 this.props 就像


render(){

  console.log(this.props);

  return

    ......

}

您将在控制台中看到所有道具,因此您可以轻松地从那里获取数据。


查看完整回答
反对 回复 2021-12-02
?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

因为您的请求是异步的。当请求返回时,你应该安慰它。在 react-native 0.6 中,您可以在 getDerivedStateFromProps(props, state) 方法中进行


static getDerivedStateFromProps(props, state) {

    console.log(props.classes.classesAll)

}

在 react-native 0.6 之前,你应该在 componentWillReceiveProps() 方法中做


componentWillReceiveProps(nextProps) {

 console.log(props.classes.classesAll)

}


查看完整回答
反对 回复 2021-12-02
?
慕容森

TA贡献1853条经验 获得超18个赞

无法预测确切原因,只是想知道以下行的作用, state.classesAll = classesAll;


查看完整回答
反对 回复 2021-12-02
  • 3 回答
  • 0 关注
  • 163 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信