我正在尝试使用装饰器来简化创建中继容器的过程,如下所示: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
}
}
`
}
有谁知道为什么会这样?我已经尝试调试了一段时间,但无法正常工作。
如果我在装饰器函数之外单独创建容器,它就可以正常工作。
编辑:这与装饰器不工作无关。我的装饰器在其他方面工作得很好,这是一个中继问题。