我正在使用react-apollo
(v3.1.3)中的查询组件。在我的情况下,variables
是一个嵌套对象。在初始通话中,它设置为
{
"dashboardFilter": {
"page": {
"pageNum": 0,
"pageSize": 10,
"sortBy": [
{
"sortDirection": "DESC",
"sortField": "DASHBOARD_PICKUP_DATE_TIME"
}
]
},
"loadStatus": [
"OPEN"
]
}
}
用户单击列后,变量对象更改为
{
"dashboardFilter": {
"page": {
"pageNum": 0,
"pageSize": 10,
"sortBy": [
{
"sortDirection": "ASC",
"sortField": "DASHBOARD_PICKUP_DATE_TIME"
}
]
},
"loadStatus": [
"OPEN"
]
}
}
问题是第一次进行网络呼叫,我接收到数据,但是当变量更改时,它不会发送网络呼叫。
这些是我要传递给Query
组件的其他道具,其他变量都保持不变。
{
"handleLoading": true,
"query": {<---Query stuff---->},
"returnPartialData": true,
"variables": {
"dashboardFilter": {
"page": {
"pageNum": 0,
"pageSize": 10,
"sortBy": [
{
"sortDirection": "DESC",
"sortField": "DASHBOARD_PICKUP_DATE_TIME"
}
]
},
"loadStatus": [
"OPEN"
]
}
},
"entityType": "Load",
"passThruMissingData": false
}
我也尝试过设置fetchPolicy="network-only"
。
我做错了什么吗?
如果有人最终遇到这个问题。进一步研究问题,我发现Query
中的react-apollo
忽略了此处讨论的fetchPolicy: network-only or no-cache
长度https://github.com/apollographql/react-apollo/issues/556。由于存在此问题的人和没有出现此问题的人之间的不一致,因此已关闭。
我们解决问题的方法是将数据返回refetch
,并且在触发时,它不再发送网络呼叫,而我们呼叫了refetch
,并再次强制发送呼叫。