简体   繁体   中英

Where to call reset method for RTKQ useMutation()?

Since RTK 1.7.0, mutation result object has a reset() method to unsubscribe from the state update of a mutation from another component:

const [mutate, { isLoading, reset }] = useMutation({ fixedCacheKey });

I use it to get isLoading state from another component's mutation. But I don't know where to call the cleanup reset() :

  • In the click handler:

     await mutate() reset()
  • Or in the cleanup

    useEffect(() => () => reset(), [reset])

    If it's this case, then do I need to do this for both (original and subscriber) components? And this is weird: the identity of reset function changes after state update, so the isLoading is cleared right after it changes.

I think the docs about this function is not very clear. Hope someone can improve it.

I'm using React 17.0.2, RTK 1.7.1.

Mutations never share state between usage in different components in the fist place - unless you force that by using fixedCacheKey . Are you maybe trying to solve a non-problem here?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM