0

我使用新的 typescript 支持版本的 reactjs

与 redux-orm 一起,当您尝试将值插入商店时,我遇到了“超出最大调用堆栈大小”的问题,与旧模板相同

下面是带有新打字稿支持的 reactjs 的代码,它会引发错误 https://reactjs.org/docs/static-type-checking.html#typescript和旧的 github 版本https://github.com/microsoft/TypeScript-React - 启动器有效。

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

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

4

1 回答 1

-1

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

根本原因在于create-react-app的 babel 预设 - 转译输出在模型原型链中引入了额外的属性描述符。

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

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

例子:

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包带到的地方,可能是 0.14 版本的redux-orm.

于 2019-07-09T00:15:21.943 回答