我使用新的打字稿支持的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
我无法理解导致新版本错误的不同之处。感谢您的帮助。
答案 0 :(得分:-1)
不能直接在Model类上定义属性。
根本原因在于 create-react-app 的babel预设-编译输出在 Model 原型链中引入了其他属性描述符。
这些属性会干扰模式注册期间 redux-orm 安装的描述符,从而导致Maximum call stack size exceeded
错误。
可以通过声明合并来避免这种情况,特别是通过提供具有匹配名称的类和接口。该接口包含Model
个属性,该类与JS Model
定义几乎是1:1。
示例:
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版本。