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

我有一个 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};

      };

http://img2.mukewang.com/61a87c720001f61003010476.jpg

开心每一天1111
浏览 164回答 3
3回答

守候你守候我

请改进您的操作并确保您从服务器获取 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    ......}您将在控制台中看到所有道具,因此您可以轻松地从那里获取数据。

慕田峪9158850

因为您的请求是异步的。当请求返回时,你应该安慰它。在 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)}

慕容森

无法预测确切原因,只是想知道以下行的作用, state.classesAll = classesAll;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript