You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新增MobX-State-Tree模型在根Store声明时报undefined及AppRegistry异常

原始报错信息:
ERROR Error: [mobx-state-tree] expected mobx-state-tree type as argument 1, got undefined instead
ERROR Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication)

错误定位

后续两个AppRegistry相关报错是初始化失败触发的连锁异常,不需要单独排查,核心问题是根store注册新子store时,传入的MST模型值为undefined。

排查解决步骤

  • 检查导入导出逻辑
    确认新增的MST模型已正确导出,导出名称、大小写和根store内的导入名称完全匹配,同时导入的相对路径没有层级错误,拼写错误、路径错误都会导致导入的模型值为undefined。
  • 修复循环导入问题
    如果新增的子store内部引用了根store的实例或者类型,会触发循环导入,导致子store被根store引用时还未完成初始化,拿到的是undefined。可以用MST内置的types.late()方法包装子store的声明,示例写法:
    import { types } from "mobx-state-tree"
    import { NewStore } from "./new-store"
    
    const RootStore = types.model("RootStore", {
      // 用late包装规避循环导入导致的初始化时序问题
      newStore: types.late(() => NewStore)
    })
    
  • 检查模型声明顺序
    如果根store和子store写在同一个文件中,确保子store的模型定义代码在根store引用它的代码之前执行,顺序颠倒会导致引用时子store还未完成赋值,返回undefined。
  • 清理缓存重新构建
    确认代码逻辑无问题后,清理React Native打包缓存重新构建,避免旧缓存异常导致报错:
    1. 停止当前运行的metro服务,执行npx react-native start --reset-cache重启服务
    2. iOS端删除ios/build目录后重新执行pod install再运行项目,安卓端删除android/app/build目录后重新运行即可。

内容的提问来源于stack exchange,提问作者AHMED HAFDI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:09:00