首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用新的启用类型记录的reactjs版本时,超过了最大调用堆栈大小。

在使用新的启用类型记录的reactjs版本时,超过了最大调用堆栈大小。
EN

Stack Overflow用户
提问于 2019-07-06 16:13:42
回答 1查看 2.2K关注 0票数 0

我使用新的类型记录支持的reactjs版本。

除了redux-orm之外,当您尝试在商店中插入一个值时,我得到了“最大调用堆栈大小超过”的问题,与旧模板的工作相同。

下面是带有新的类型记录支持的reactjs的代码,它抛出错误https://reactjs.org/docs/static-type-checking.html#typescript和旧的github版本的https://github.com/microsoft/TypeScript-React-Starter

https://drive.google.com/open?id=15eolNjeYroyubgSmbGaaKfjxbe-IZ8KK

我无法理解导致新版本错误的不同之处。谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2019-07-09 00:15:21

不能直接在Model类上定义属性。

根本原因在于create-react-app's babel预设的转移溢出输出在模型原型链中引入了附加的属性描述符。

这些属性会干扰redux-orm在模式注册期间安装的描述符,从而导致Maximum call stack size exceeded错误。

可以通过声明合并来避免这种情况,特别是通过提供一个类和一个具有匹配名称的接口。接口包含Model属性,类几乎为1:1到JS Model定义。

示例:

代码语言:javascript
复制
interface Book {
    id: number
    title: string
}

class Book extends Model<typeof Book> {
    static modelName = 'Book' as const

    static fields = {
        id: attr(),
        title: attr()
    }
}

我用工作示例创建了一个回购程序:https://github.com/tomasz-zablocki/redux-orm-ex-types-react-example

请注意,这些类型都是自定义类型,但肯定是我想要将@types/redux-orm包带到的地方,很可能是redux-orm的0.14版本。

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

https://stackoverflow.com/questions/56915761

复制
相关文章

相似问题

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