我使用新的类型记录支持的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
我无法理解导致新版本错误的不同之处。谢谢你的帮助。
发布于 2019-07-09 00:15:21
不能直接在Model类上定义属性。
根本原因在于create-react-app's babel预设的转移溢出输出在模型原型链中引入了附加的属性描述符。
这些属性会干扰redux-orm在模式注册期间安装的描述符,从而导致Maximum call stack size exceeded错误。
可以通过声明合并来避免这种情况,特别是通过提供一个类和一个具有匹配名称的接口。接口包含Model属性,类几乎为1:1到JS Model定义。
示例:
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版本。
https://stackoverflow.com/questions/56915761
复制相似问题