我正在尝试使用装饰器来简化创建Relay容器,就像在这个要点中一样:https://gist.github.com/miracle2k/f39aaaccbc0d287b2ddb
不幸的是,它无效并且错误地使用Invariant Violation: RelayQueryNode: Abstract class cannot be instantiated.
我的代码没什么特别有趣或奇怪的。类似于:
function relayDecorator(component) {
return createContainer(component, { fragments: component.fragments })
}
@relayDecorator
class Component extends React.Component {
static fragments = {
viewer: () => Relay.QL`
fragment on Viewer {
email
}
}
`
}
有谁知道为什么会这样?我试图调试一段时间,但无法使其正常工作。
如果我在装饰器函数之外单独创建容器,它就可以正常工作。
编辑:这与装饰工作无关。我有装饰工作适合其他事情,这是一个接力问题。