首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将数据从fetch调用推送到mobx可观察对象数组中

无法将数据从fetch调用推送到mobx可观察对象数组中
EN

Stack Overflow用户
提问于 2019-11-01 05:57:26
回答 1查看 469关注 0票数 1

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

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

使用文字初始化,我可以通过一个控制台日志在我的控制台中显示数组,但是数组总是空的。

我真的不明白为什么对象数组不接受任何值

我不能将任何数据传递给可观察对象。我已经尝试了将整个事情分配给响应,分配匹配的部分,推送,连接,Object.assign,做一个深度复制。我还尝试将response对象中的值映射到适当的数组中。

代码语言:javascript
运行
复制
//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);

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

EN

回答 1

Stack Overflow用户

发布于 2019-11-02 06:17:45

当您调用toJS(model)时,您返回的是普通的JS对象。Model将不会被观察到。

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

MobX Docs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58651648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档