我在reactjs中编写一个UI应用程序,并希望使用graphql获取数据。我正在使用Relay。但是,我在Relay.createContainer中构建的graphql查询正在添加额外的" id"领域。在relay / graphql中是否有一种方法可以排除这些不必要的字段,并且只包括在创建时在查询中给出的内容。以下是代码段: 在RelayRoute.jsx ::
中TPRelayRoute.queries = {
enterprise: () => {
return Relay.QL`
query etp_ptp{
enterprise
}`;
}
};
在UITable.jsx ::
中export default Relay.createContainer(UITable, {
initialVariables: {
count: 20
},
fragments: {
enterprise: () => {
return Relay.QL`
fragment etp on Enterprise {
etpInfo{
erInfo{
payments(first:$count){
edges{
node{
enterprise{
id
}
}
}
}
}
}
}`;
}
}
});
查询正在发送的内容: {"查询":"查询etp_ptp {enterprise { id ,... F0}}片段F0 on Enterprise {etpInfo {erInfo { paymentsEEVLi :付款(第一次:20){edge {node {enterprise {id,__ typename},id,__ typename},cursor},pageInfo {hasNextPage,hasPreviousPage}}} }, ID }""变量":{}}
预计会发送查询: {"查询":"查询etp_ptp {enterprise {... F0}}片段F0 on Enterprise {etpInfo {erInfo {payments(first:20){edges {node {enterprise {id,__ typename },id,__ typename},cursor},pageInfo {hasNextPage,hasPreviousPage}}}}}","变量":{}}
答案 0 :(得分:0)
Relay需要一个(全局唯一的!)ID字段才能区分本地存储中的记录。如果后端无法提供此功能,则继电器将无法正常工作。