如何解决Rtk查询无效的标签没有使数据无效

114 阅读1分钟

我有一个克隆的twitter,当我关注一个用户时,索引页上显示的帖子应该刷新,然后显示我关注的用户的帖子,关注者列表也应该刷新,删除该用户。所以我为followUser函数添加了invalidate标签,使帖子和用户数据都失效,但这并不奏效。只有当我刷新时,我才能得到更新的数据。我怎样才能在不刷新的情况下使我的帖子列表和用户列表被刷新并显示新数据。

apiSlice followUser

 followUser:builder.mutation({
    async queryFn({id,currUserId}):Promise<any>{
      try{
        let currUserDocRef = doc(db,`users/${currUserId}`);
        updateDataFirebase(currUserDocRef,'following',id)

        return {data:'ok'} 
      }

      catch(err){
        return {error:err}
      }

    },invalidatesTags:['Posts','Users']
  })

getPosts

getPosts: builder.query<Posts[],void>({
      async queryFn(currUserId):Promise<any>{
        try{
          let followingsArr=await getFollowingArrFirebase(currUserId);
         //console.log(followingsArr)
          let tweetsArr: { }[]=[];
          const q=query(collection(db,'tweets'), where("creatorId", "in" , followingsArr))   
          tweetsArr=await getDataFirebase(q)
          return { data:tweetsArr }
        }

        catch(err:any){
          return{error:err} 
        }

    },providesTags: ['Posts']}),