未捕获的类型错误:无法添加属性 12,对象不可扩展

2023-11-23

我似乎无法理解我在客户端应用程序上遇到的错误。我正在订阅 graphql 订阅,并且能够检索更新,但无法将更改推送到绑定到视图的名为“models:ModelClass[]”的打字稿数组。

我是否遗漏或做错了什么?

模型.组件.ts

this.apollo.subscribe({
  query: gql`
    subscription {
      newModelCreated{
        _id
        name
        type
        train_status
        deploy_status
        data_path
        description
        created_at
        updated_at
      }
    }
  `
}).subscribe((data) => {
  console.log("CREATED: " + JSON.stringify(data.newModelCreated));
  console.log(data.newModelCreated);
  var temp:ModelClass = data.newModelCreated;
  this.models.push(temp);
});

模型类.ts

export interface ModelClass {
    _id: string;
    name: string;
    type: string;
    parameters: {
        alpha: number;
    };
    train_status: string;
    deploy_status: string;
    test_accuracy: string;
    created_at: number;
    updated_at: number;
}

我想 this.models 是 Apollo 返回的数组,您想将新创建的对象添加到初始数组中吗?如果为 true,Apollo 将返回一个不可变的对象!

您必须克隆初始返回的数组。类似于订阅功能:

this.apollo
    .watchQuery({query: INITIAL_GQL_REQUEST})
    .subscribe((data) => {
        this.models = data.models.map((model) => {
            return {
                id: model.id, 
                name: model.name,
                another: model.another
            }
        })
    };
});

然后,您的订阅请求将能够将创建的模型添加到这个纯 JavaScript 数组中。

PS:不确定,但我认为 Apollo 返回不可变对象,因为它们存储在存储中,并且根据您的获取策略,如果您能够改变它们,它可能会错过存储命中。

希望能帮助到你

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未捕获的类型错误:无法添加属性 12,对象不可扩展 的相关文章

  • Highstock highcharts 不规则数据的 x 尺度错误

    我有不规则的数据 我使用时图表绘制得很好高图表 function var chart new Highcharts Chart chart renderTo chart xAxis type datetime series name Vol
  • 从立即调用的匿名函数表达式返回 |它去哪里?

    如果我从立即调用的匿名函数表达式返回一个对象 它会去哪里 例如 这段代码中 foo 去了哪里 function var foo return foo 这有什么有用的应用吗 从自执行函数返回一个值而不将该返回值分配给结果变量只是一个无处可去的
  • 如何从 JavaScript 中计算 HTML 表格的渲染高度?

    调整窗口大小时 我需要知道表格有多大 以便我可以动态地很好地适应中间的所有其他内容 表格高度仅取决于动态加载的内容 如何在 JavaScript 中计算表格的渲染高度 您可以使用element offsetHeight https deve
  • Javascript 与 Python 关于 Python 'map()' 函数的比较

    Python中有一个函数叫做map这可以让你去 map someFunction x y z 并继续应用该功能的列表 是否有与此功能等效的 JavaScript 我现在刚刚学习Python 虽然我被告知javascript是函数式语言 但我
  • JavaScript 对象引用缓存

    我们的代码库中有很多对象 它们的名称空间是为了避免冲突 Example App local view MyView 在我在代码库中看到的大多数地方 我们使用完整路径来获取对对象的引用 并且这在同一函数中重复多次 Example functi
  • 如何在打字时自动调整垂直离子输入字段的大小

    当我输入长文本时 ion input字段保持相同的高度 我只能看到可用可见区域中的文本 当我输入时 我希望输入字段根据其中的数据自动垂直调整为 2 行或 3 行 My page html code
  • 未捕获的类型错误:this.props.signinUser 不是一个函数(…)

    src actions index js import axios from axios const ROOT URL http localhost 3090 export function signinUser email passwor
  • Three.js - 在代码中包含网格数据

    我有这个 Three js 代码 其中 JSON 加载器从文件 models mountain json 加载网格 var Three new function this scene new THREE Scene this camera
  • 具有行组的 JQuery 斑马条纹表

    我通常将斑马条纹表行设置为奇数 偶数 如下所示 效果很好 table tbody tr visible even this addClass even table tbody tr visible odd this addClass odd
  • 使用 Javascript / Jquery 的本地存储(不使用 HTML5)

    我想在 javascript 或 jquery 中复制本地存储概念 类似于 HTML5 但不幸的是我不知道如何开始 任何人都可以建议如何使用 javascript 或 jquery 实现本地存储 不使用 HTML5 这是一个有点愚蠢的差事
  • JQuery DataTable 单元格从行单击

    我正在尝试在 jquery 数据表上实现一个函数 该函数返回单击行的第一列和第四列 我正在遵循这个示例 它允许我操作单击的行http datatables net examples api select single row html ht
  • 点击问题:动态生成的链接不触发点击功能

    下面是两个代码片段 由于某种原因什么也没有发生 但来自同一个 JS 文件的其他 jQuery 函数在带有 UL 的页面上执行得很好 这是在盯着我看吗 ul class paganation li 1 li li a href 2 a li
  • 对象数组 - 在 Vue.js 生态系统中更新对象的正确方法

    我不确定问题到底出在哪里 但我会看看是否有人可以帮助我理解我的代码出了什么问题 我正在利用 Vuex 商店来跟踪某些不断变化的状态 我这样做如下 import Vue from vue import Vuex from vuex Vue u
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • 如何在 angularjs 中修剪()字符串?

    有角度特定的方法吗 如果没有 我应该使用内置的jquery 来做到这一点吗 如果我应该使用内置的jquery 如何在不使用 的情况下访问trim 函数 或者这是必要的 编辑 是的 我知道 str trim 对不起 我需要这个才能在 IE 8
  • Meteor.js 登录事件

    因此 我对 Meteor 框架和 JavaScript 总体来说还很陌生 但我正在使用该框架开发一个小项目 以尝试让自己达到标准 基本上我正在开发一个微博客网站 目前 用户可以通过多种服务登录 fb google 等 我通过插入所需 url
  • 使用Promise而不拒绝它会导致内存泄漏吗? [复制]

    这个问题在这里已经有答案了 代码如下 function test value return new Promise function fulfill reject try fulfill true catch e throw e 我担心的是
  • 在声明组件选择器时添加指令 - Angular 7

    我正在学习 Angular 并通过单击按钮动态创建组件 我正在尝试使用 Angular Material 的拖放功能来拖动这些创建的组件以对它们进行排序 我的基本组件 html 中有以下代码 div style margin 20px di
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • 获取淘汰赛中被点击元素的索引

    获取无序列表中单击元素的索引的最佳方法是什么 让我举个例子 假设我有以下 HTML 代码 ul li p p li ul 现在我有以下 javascript 代码来获取索引 self itemClicked function data it

随机推荐

  • 与调用函数相比,goto 语句是否高效? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我这里有以下 C 代码 i
  • 如何让 else 语句不执行任何操作?

    我是 JavaScript 编程新手 我需要帮助 我正在制作一个小程序 随机选择一个数字 1 4 然后根据该数字打印出一条语句 A 1 2 B 3 C 4 D 我的问题是 对于 if else 语句 我希望 else 语句不执行任何操作 如
  • Java:如何发送XML请求?

    我需要在 java 中发送 xml 请求并捕获响应 我怎样才能做到这一点 我在谷歌中搜索 但到目前为止还没有任何可靠的信息 此致 瓦尔特 恩里克 如果您想要执行 HTTP POST 那么您可以使用java net Java SE 中的 AP
  • Android - 如何动态加载可绘制对象(图片)?名称直到运行时才知道

    我已经多次搜索谷歌和这个网站 但找不到我的问题的解决方案 首先 我明白 您可以使用以下方式加载图像 int image R drawable icon assuming there s a file called icon png 我读过并
  • PHP - 为什么我收到正则表达式太大的警告?

    我想使用正则表达式来验证用户输入 我想允许字母 数字 空格 逗号 撇号 句号 感叹号和问号的任意组合 但我也想将输入限制为 4000 个字符 我想出了以下正则表达式来实现此目的 a z 0 9 1 4000 i 但是 当我尝试使用此正则表达
  • 配置 Log4net 以写入多个文件

    我想将日志写入同一进程的两个不同的日志文件中 使用 log4net 可以做到这一点吗 我需要将单独的消息写入每个日志文件 如何向特定的附加程序写入消息 这些答案很有帮助 但我想与 app config 部分和 c 代码部分分享我的答案 这样
  • Matplotlib 1.5 使用axes.prop_cycle

    axes color cycle在 Matplotlib 1 5 中已弃用 然而它的用法非常简单 我们可以通过以下方式轻松获取特定颜色 plt rcParams axes color cycle color number axes prop
  • 热键/快捷方式:“这是哪个插件?”

    请原谅这么简单的问题 我已经离开 RCP 大约一年了 我可以在 Eclipse 中使用什么快捷键 热键组合来发现贡献 拥有当前视图的插件 我记得它调出了当前鼠标下插件的plugin xml 我应该非常感谢你的线索 M The Plug in
  • a:悬停不起作用

    HTML table width 100 tr td width 90 td td a href strong Logout strong a td tr table CSS charset utf 8 CSS Document logou
  • php 检查数组数组中是否存在值

    我有一个数组中的数组 a array 0 gt array value gt America 1 gt array value gt England 如何检查数组中是否存在 America America 数组可以是任何键 并且可以有任意数
  • Clojure - 为什么在阻塞插入通道时执行会挂起? (核心.异步)

    考虑以下片段 let chs repeatedly 10 chan doseq c chs gt c hello doseq c chs println c hello 相反 它工作得很好 要进行异步放置 请使用clojure core a
  • 如何更改 JFrame 中的 java 图标

    好吧 我一直在安静地研究这个问题 我对 java 相当陌生 但认为这很容易 我已经尝试了该网站上已回答的几乎所有方法 但仍然没有运气 通常当我在这里查看时 我能够找到适合我正在寻找的答案 有谁知道如何更改 JFrame 右上角的 Java
  • 上传前预览图像

    我希望能够在上传文件 图像 之前对其进行预览 预览动作应该全部在浏览器中执行 而不是使用Ajax上传图像 我怎样才能做到这一点 imgInp onchange evt gt const file imgInp files if file b
  • 如何深度复制 DateTime 对象?

    date1 date2 new DateTime date2 gt add new DateInterval P3Y Now date1 and date2包含相同的日期 三年后 我想创建两个单独的日期时间 一个是从字符串解析的 另一个是添
  • 检查所有 EditText 是否为空

    我在 xml 中有 6 个 EditText 字段 单击按钮时 我需要验证所有 EditText 是否都有值或者为空 目前我正在一一检查每个 EditText 我怎样才能一次检查所有内容 代码 private Button BtnSave
  • 业力开始 - 传递参数

    有没有办法通过 Karma 命令行传递参数 然后在测试中的某个位置读取该参数 例如 这就是想要的 karma start branding clientX 然后在我的规范中的某个地方我需要访问这个变量 我需要 clientX 值 这有可能吗
  • 如何更改 SignalR 最大消息大小?

    我需要在 SignalR 中传输大型 JSON 消息 但默认情况下最大消息大小受到限制 有什么方法可以增加该最大大小 我还找到了一些相关链接 但没有找到任何合适的解决方案 https learn microsoft com en us as
  • 如何在Python中提取XML属性的值?

    我需要使用 Python 提取 XML 文档中的属性值 例如 如果我有一个像这样的 XML 文档
  • 如何在网页中连续显示python输出?

    我希望能够访问一个网页 它将运行一个 python 函数并在网页中显示进度 因此 当您访问网页时 您可以看到脚本的输出 就像从命令行运行它一样 并在命令行中查看输出 我需要在函数中做什么 我需要在模板中做什么 EDIT 我正在尝试将 Mar
  • 未捕获的类型错误:无法添加属性 12,对象不可扩展

    我似乎无法理解我在客户端应用程序上遇到的错误 我正在订阅 graphql 订阅 并且能够检索更新 但无法将更改推送到绑定到视图的名为 models ModelClass 的打字稿数组 我是否遗漏或做错了什么 模型 组件 ts this ap