如何将 RelayJS 连接转换为普通数组?
How to convert RelayJS connection to plain array?
有一个组件 UserListWidget
具有以下容器定义:
fragments: {
users: () => Relay.QL`
fragment on User @relay(plural: true) {
id
displayName
}
`
}
还有一个父组件需要将用户连接呈现为普通列表。但以下将不起作用:
<UserListWidget users={userConnection.edges.map(edge => edge.node)} />
失败并出现错误:
Invariant Violation: RelayContainer: Invalid prop `users` supplied to `UserListWidget`, expected element at index 0 to have query data.
更改 UserListWidget
以接受 userConnection 而不是简单的用户列表不是一个选项,因为它是一个通用组件,其他父组件将只提供用户列表,而不是连接。
所以我想应该有一种方法可以以某种方式将连接视为简单的节点列表?
如果 parent 组件不包含 child 片段,则会发生此错误。 parent 是否包括 userConnection(...) { edges { node { ${UserListWidget.getFragment('users')} } } }
?
有一个组件 UserListWidget
具有以下容器定义:
fragments: {
users: () => Relay.QL`
fragment on User @relay(plural: true) {
id
displayName
}
`
}
还有一个父组件需要将用户连接呈现为普通列表。但以下将不起作用:
<UserListWidget users={userConnection.edges.map(edge => edge.node)} />
失败并出现错误:
Invariant Violation: RelayContainer: Invalid prop `users` supplied to `UserListWidget`, expected element at index 0 to have query data.
更改 UserListWidget
以接受 userConnection 而不是简单的用户列表不是一个选项,因为它是一个通用组件,其他父组件将只提供用户列表,而不是连接。
所以我想应该有一种方法可以以某种方式将连接视为简单的节点列表?
如果 parent 组件不包含 child 片段,则会发生此错误。 parent 是否包括 userConnection(...) { edges { node { ${UserListWidget.getFragment('users')} } } }
?