无法将数据从提取调用推入Mobx可观察对象数组

时间:2019-10-31 21:57:25

标签: javascript arrays reactjs mobx mobx-react

我正在从API进行提取调用,将其转换为json,然后获取一个对象(带有嵌套的对象数组)。我可以在控制台中登录,没问题。

问题是我正在为一个学校项目这样做,并且讲师特别希望我们使用存在于我们所传递的js文件中的mobx管理模型中的状态。我无法将任何数据输入模型。

使用文字初始化,我可以使用consolelog从应用程序中将这些数组显示在控制台中,但是这些数组始终为空。

真的很困惑为什么对象数组不接受任何值

我无法将任何数据传递给可观察对象。我试过只是将整个事情分配给响应,分配匹配的部分,推送,压缩,Object.assign,进行深层复制。我还尝试过将响应对象中的值映射到适当的数组中。

//need fetch response in here
let model = observable({
  Ratings: [],
  Instructors: [],
  Likes: [],
  Schools: []
});

export let Model = toJS(model);

Model.Fetch = async function() {
  const endPoint = "http://s28.ca/sodv2201/instructor/ratings";
  const req = {};

  let P = await fetch(endPoint, {
    method: "POST",
    body: JSON.stringify(req)
  });
  let data = await P.json();

  //the object I need(goes deeper, ex. data.Ratings.Ratings,
  //data.Ratings.Instructors)
  let ratings = data.Ratings;
  //doesn't work
  model.Ratings = ratings.Ratings;

  //model appears to be right, but fails when
  //adding to Model, can see arrays, no data in them
  model = ratings;
  console.log(model);

没有错误消息,只是无法将数据提取到可观察对象数组中。

1 个答案:

答案 0 :(得分:0)

调用null时,您将返回普通的JS对象。 toJS(model)将不可观察。

Model-将(可观察到的)对象递归转换为javascript结构。

MobX Docs