【问题标题】:How to convert RelayJS connection to plain array?如何将 RelayJS 连接转换为普通数组?
【发布时间】:2015-11-24 02:01:33
【问题描述】:

有一个组件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 而不是普通的用户列表不是一种选择,因为它是一个通用组件,其他父组件将只提供用户列表,而不是连接。

所以我想应该有一种方法可以以某种方式将连接视为简单的节点列表?

【问题讨论】:

    标签: relayjs


    【解决方案1】:

    如果父组件不包含子片段,则可能会发生此错误。父母是否包括userConnection(...) { edges { node { ${UserListWidget.getFragment('users')} } } }

    【讨论】:

    • 我没有意识到你可以用复数片段来做到这一点。但它奏效了,谢谢!
    猜你喜欢
    • 2015-02-05
    • 2012-01-31
    • 1970-01-01
    • 2017-01-10
    • 2019-09-27
    • 1970-01-01
    • 2015-08-20
    • 2021-06-07
    相关资源
    最近更新 更多