2

我正在使用 MobX 和 React 进行状态管理。我实际上得到了它的工作 - 数据从父级传播到这个父级的子级@observer,并在父级上使用,并从商店传递道具。那太棒了!

除了..数据在那里 - 我可以console.log在每个孩子身上,但axios.get里面的调用stores.js失败(即使它确实传递了数据?)

我的stores.js

import { observable, action, computed } from 'mobx';
const axios = require('axios');

class Store {
    @observable dataForParent;
    loadParent = () => {
        let that = this;
        axios.get("/api/parentdata/snapshot").then(function(response){
            console.info("Received parent info "+ (new Date()).toString());
            that.dataForParent = response.data;
            console.log(response.data);
        }).catch(function(error){
            console.error("Error getting parent info:" + error.toString());
        });
    };
}

export default Store;

没错,它设法将数据传递给<Parent />组件。

但是,它从不渲染<Parent />组件,因为它说loadParent()函数实际上捕获了错误。

错误是:Error getting parent info:TypeError: Cannot read property 'data' of null

这对我来说没有多大意义:我可以console.log输出包含其他对象的整个对象,并在/api/parentdata/snapshot界面处收集。意味着调用是成功的,而不是失败的。

为什么它会失败并阻止整个应用程序?数据被传播到我的 React 类。我觉得很奇怪。

4

0 回答 0