如果对象已经是同一或另一个状态树的一部分,则无法将对象添加到状态树

2024-02-19

mobx-state-tree.module.js?f7d3:2154 未捕获错误:[mobx-state-tree] 如果对象已经是同一或另一个状态树的一部分,则无法将对象添加到状态树。

我只是通过过滤另一个状态来得到这个错误:

const data = self.allData.slice(0, 20);
self.sliced = data

任何人都知道出了什么问题吗?


一个节点不能在状态树中存在两次。你可以改为建模你的sliced数据作为数组references https://mobx-state-tree.js.org/concepts/references它应该按预期工作。

Example

import { types } from "mobx-state-tree";

const Thing = types.model({
  id: types.identifier
});

const RootStore = types
  .model({
    allData: types.array(Thing),
    sliced: types.maybe(types.array(types.reference(Thing)))
  })
  .actions((self) => ({
    setSliced() {
      const data = self.allData.slice(0, 20);
      self.sliced = data;
    }
  }));

const rootStore = RootStore.create({
  allData: Array.from({ length: 40 }, (_, index) => ({ id: index.toString() }))
});

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

如果对象已经是同一或另一个状态树的一部分,则无法将对象添加到状态树 的相关文章

  • Phonegap 图像未显示

    我无法让图像在我的phonegap 版本中正常工作 我读过绝对路径可能不起作用 所以我尝试了绝对路径和相对路径 但仍然没有运气 我包括这样的图像
  • 当react-redux中redux存储的非相关部分更新时组件重新渲染

    我注意到我的一些组件在我不期望的情况下重新渲染 可以说我有一个
  • 如何将 setTimeout 添加到使用 redux 的 fetch Promise 中?

    经过一定的秒数后 如果获取承诺尚未得到解决 我想向用户显示超时错误 我在这里看到了一些添加 setTimeout 来获取的很好的例子 https github com github fetch issues 175 https github
  • React + 路由器 + Google 标签管理器

    我花了一些时间在 Quickcypher com 上开发 MVP 我想开始进行一些分析 它对于跟踪总访问量非常有用 但是当我尝试跟踪使用 React Router 的网站上的不同 URL 时 情况却出问题了 我的方法是这样的 设置一个在某些
  • DevSettings.reload() 用于 React Native 中的注销

    问题 我正在将混合应用程序的注销功能从本机迁移到反应本机 要求 它可以在生产环境和设备上运行 它导航到应用程序的根屏幕 登录屏幕 它清除 redux 存储 很高兴有 它会取消任何飞行中的请求 最初 我们计划做这样的事情 如何重置 redux
  • 有没有办法从函数内单击导航链接?

    基本上 我正在延迟导航 单击链接后 onClick 处理程序通过检查条件并调用另一个函数来阻止导航 如果满足特定条件 则仅该页面导航到另一个页面 那么我如何从该函数中触发 Navlink 单击 我能够通过使用解决这个问题event prev
  • useEffect 中的 useState 不更新状态

    我是 React Hooks 新手 正在使用 React 16 13 1 我要实施Auth能够处理登录的组件 但似乎没有更新状态currentUser正确地 尽管setCurrentUser使用响应对象调用 这段代码有什么问题 import
  • 如何通过 GraphQL 从 json 获取数据?

    enter code here compdata id 1 title FlexBox id 2 title Grid layout enter code here file in src data data json enter code
  • VM428:7 未捕获类型错误:无法在 :7:17 处读取 null 属性(读取“CodeMirror”)

    代码运行良好 但我不明白在哪里收到此错误 VM428 7 Uncaught TypeError Cannot read properties of null reading CodeMirror at
  • Next JS - 源代码中缺少元标签

    我安装了多个元标记 例如标题 描述 关键字等 但是 它没有在查看源代码中显示这些标签 因此 Facebook 共享卡无法正常工作 我已经安装了og标签 但在 Facebook 上似乎找不到它们Scraper或我的查看来源 然而 它填充在客户
  • 平面列表滚动时响应触摸事件的延迟

    我在反应本机应用程序中使用 FlatList 实现了无限滚动 这个列表是一个轮播列表 可以认为是一个很长的列表 当我滚动列表时 列表外部的触摸事件在单击时没有响应 但在 FlatList 滚动完成时响应 我该如何改进这个 这个问题很难回答
  • VSCode 在 React 的 JSX 中错误地格式化三进制

    我正在运行 VSCode 来开发我的 React 应用程序 我有一个简单的三元 isLoading
  • 从外部material-ui组件访问主题

    我有一个使用标准深色主题的主题提供商 我希望能够从我自己的自定义组件访问该主题的详细信息 但我不知道如何做到这一点 在下面的例子中 this props theme未定义 ReactDOM render
  • 如何使用 JSX 和 Lodash 重复一个元素 n 次

    我在我的应用程序中使用 React JSX 和 Lodash 来实现我想要的 我需要根据条件重复某个元素一定次数 我该怎么做呢 这是元素 span span 我这样分配它 let card if data hand 8 or more ca
  • 无法验证 CSRF 令牌的真实性 Rails/React

    我的 Rails 应用程序中有一个 React 组件 我正在尝试使用它fetch 发送一个POST对于我在本地主机上托管的 Rails 应用程序 这给了我错误 ActionController InvalidAuthenticityToke
  • 如何在 getStaticPaths 内添加 params 值数组

    我有一个页面 其结构如下 read slug number 我想要得到slug每个对应的值number in the getStaticPaths这是代码 export async function getStaticPaths const
  • 如何使用 React 制作垂直选项卡

    有人可以为我提供一种使用 React 创建垂直选项卡的方法吗 我尝试了各种npm包 如react web tabs reactstrap和react bootstrap 最后两个只有水平选项卡的示例 React web tabs在其文档中有
  • 打开对话框时,Material-UI 会向 body 标记添加填充

    我在我的 React 应用程序中使用 Material UI 最近 我将我的软件包更新到了 最新版本 现在 当我在应用程序中打开一个对话框时 padding right 17px 将被添加到 body 标签中 我还检查了 Material
  • React Router 总是将我重定向到不同的 url

    我是 React 和 React Router 的新手 我正在使用 React Router v4 并遵循基于以前版本的教程 但我让它工作了 使用在 SO 上找到的一些东西和 React Router v4 文档上的一些东西 但有一件事困扰
  • 调用axios成功后如何更新页面?反应

    所以我正在做一个使用的项目Axios with Json server 但我有一个问题 每次我做Patch 我必须在主页上按 F5 才能更新 我想知道如何才能做到这一点 这样它就不会自动发生 My Patch onSubmitDate ev

随机推荐

  • File.lastModified() 慢得要命!

    我正在做文件的递归副本等xcopy D http www microsoft com resources documentation windows xp all proddocs en us xcopy mspx mfr true我只想复
  • .hover(...) 和 on.("hover"...) 行为不同

    使用 JQuery 当元素处于悬停状态时 我尝试链接几个函数 我通常会使用 hover事件函数 但在阅读了一些教程后我读到了使用 on更好 因为您可以使用一个事件处理程序来监视文档中的所有冒泡事件 但是 当我将两个函数链接在一起时遇到问题
  • 在诗歌运行期间导入本地包

    我刚刚从pipenv to poetry我在从我在一些脚本中开发的本地包导入包时遇到问题 为了使这一点更具体 我的项目看起来像 pyproject toml poetry lock bin myscript py mypackage ini
  • Symfony2.5 + FOSUserBundle 检查路径显然没有找到

    我启动了一个新的 Symfony 应用程序 在其中使用 FOSUserBundle 我安装了它 加载了捆绑包并配置了它 这是我的configuration yml fos user db driver orm firewall name m
  • 使用 Xcode 7 禁用项目和 cocoapods 依赖项的位码?

    如何禁用项目和 cocoapod 依赖项的位码 这是我尝试使用 Xcode 7 运行项目时遇到的错误 不包含位码 您必须在启用位码 Xcode 设置 ENABLE BITCODE 的情况下重建它 从供应商处获取更新的库 或禁用该目标的位码
  • 本地化包含名称列表的字符串

    我有包含名称列表的字符串 如下所示 约翰向金 凯利 李和鲍勃询问了新年计划 名单中的名字数量可以非常多 我如何在 Java 中本地化它 我正在考虑 ResourceBundle 和 MessageFormat 我将如何在 MessageFo
  • 如何忽略通过 http 发送的属性

    我的应用程序中有一个接口 用于维护我想要发送到数据库的属性以及我不发送到数据库的属性 具体来说 我维护一个名为state可以设置为open or null 关闭 然后触发 Angular2 的动画state https angular io
  • RemoteActor 取消注册 actor

    我正在玩 RemoteActors 现在我想知道 如果我关闭 RemoteActor 会发生什么 该 Actor 可通过 RemoteActor alive 和 RemoteActor register 来使用 我找不到两者的逆 活着和注册
  • 如何在java中使用lucene添加自定义停用词

    我正在使用 lucene 删除英语停用词 但我的要求是删除英语停用词和自定义停用词 下面是我使用 lucene 删除英文停用词的代码 我的示例代码 public class Stopwords remove public String re
  • 从 Mastercard/VISA 借记卡/信用卡读取 EMV 数据 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试构建一个应用程序来读取 编码卡上的数据 如 PAN 到期日 客户名称 PIN 等信息 到目前为止 我发现我需要发送 APDU
  • 导航抽屉图标未显示(Sherlock 操作栏)

    让导航抽屉与 sherlock 操作栏配合使用 但我无法显示 3 行图标 如 gmail 而不是正常的向上按钮 getSupportActionBar setIcon R drawable myIcon getSupportActionBa
  • “ExecuteScalar:连接属性尚未初始化。”

    我是 C 新手 目前在不调试的情况下运行该程序时遇到一些问题 这是我的项目的登录页面 我创建了一个基于服务的数据库 我想连接到数据库中表 Table 中的用户名和密码数据 但是 我遇到了一个问题 ExecuteScalar 连接属性尚未初始
  • R 函数在 left_join 中进行故障恢复?

    我有 20 多个不同的数据表 其中的数据由相同的编码系统 北美行业分类系统 NAICS 索引 我想将它们连接到一个表中 问题是每个表中都有不同级别的详细信息 当我加入时 我希望通过失败编码系统的层次结构直到找到匹配来找到最佳匹配 一个常规的
  • 如何在 VBA 中处理工作表(unicode VBA 显示和处理)中西里尔字母引起的错误(#REF)?

    我想从特定的工作簿中获取数据 有几十个工作簿 循环部分工作正常 但下面的代码不起作用 因为工作表采用西里尔字母 并且它们给出了值 到sheet As String范围 我想问如何在不打开工作簿的情况下强制重命名它 无需Workbook Op
  • Laravel 4 Auth:尝试不起作用

    我在使用 Laravel 4 Auth attempt 方法时遇到了困难 遵循了正确的文档 阅读了几个 SO 线程 但我仍然无法让它工作 userData array email gt email protected cdn cgi l e
  • MySQL 使用日期时间进行选择,仅按日期分组

    是否可以从 MySQL 表中选择日期时间字段并仅按日期分组 我正在尝试输出多次发生的事件列表 并按发生日期分组 我的表 数据如下所示 时间戳是日期时间字段 1 2010 03 21 18 00 00 Event1 2 2010 03 21
  • 如何使用 Perl 将字符串转换为浮点数?

    有没有类似的功能int 哪个可以将字符串转换为浮点值 我目前正在使用以下代码 input int substr line 1 index line 1 我需要转换返回的字符串substr浮 只需使用它即可 在 Perl 中 看起来像数字的字
  • 如何根据一定的标准对列表进行排序

    例如我有一个清单 list word1 0 234 word2 0 2 word3 0 5 word4 0 67 我想按重要性对其进行排序 重要性是指该值距 0 5 有多远 排序后的列表应该是 list word2 0 2 word1 0
  • Windows Batch 读取文件并将行解析为标记和变量

    通过搜索这个网站并学习 Windows 批处理脚本这一荒谬的语言 我已经取得了很大的进展 但我现在陷入了困境 我有一个行数可变的文本文件 每行看起来像 AA8315 United States N777AN American Airline
  • 如果对象已经是同一或另一个状态树的一部分,则无法将对象添加到状态树

    mobx state tree module js f7d3 2154 未捕获错误 mobx state tree 如果对象已经是同一或另一个状态树的一部分 则无法将对象添加到状态树 我只是通过过滤另一个状态来得到这个错误 const da