我正在使用 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 类。我觉得很奇怪。