React Apollo:如何为突变后的相同查询但不同变量更新不同的缓存条目?

时间:2020-07-04 15:11:02

标签: reactjs graphql apollo react-apollo apollo-client

我查询提供的日期之间的活动:

const GET_FILTERED_ACTIVITIES = gql`
    query filteredActivities($createdBetween:String!){
        allActivities(createdBetween:$createdBetween){
            edges{
                node{
                    id
                    createdDate
                    info
                }
            }
        }
    }
`

此查询的输入变量示例:

{
  "createdBetween": "[\"2020-07-03\",\"2020-07-04\"]"
}

它返回在Date: 2020-07-03Date: 2020-07-04之间创建的项目的列表

我有一个前端应用程序,其中包含带有按钮的过滤器:今天,明天,本周,本月和自定义开始和结束日期。根据用户的输入,start_date和end_date作为变量传递和项目被提取并显示。每次我使用具有不同变量(即不同日期)的此查询时,都会创建单独的缓存条目。另外,我有一个用于创建通过突变创建的用户的表单。并且在后端,当创建用户时,会自动创建一个活动,其中createdDate为当前日期,info为“创建新用户”

我想要的是,每次通过突变创建用户时,我都希望使用当前生成的活动“创建新用户”来更新缓存,该活动可以通过cache.writeQuery或{{ 1}}由useMutation挂钩提供。但是我不知道要更新哪个缓存,因为对于不同的筛选器有多个缓存条目。如果我使用refetchQuery,则在写查询名称时,我应该将日期作为变量传递,因为有多个不同日期的缓存条目。

0 个答案:

没有答案