redux 如何在第一次完成后调用RTK突变

qrjkbowd  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(180)

我使用的是REDUX-TOOLKIT-QUERY,现在我有一个情况,我必须调用一个变异,一旦这个变异返回一个响应,我必须使用其他三个变异中的响应作为请求参数,我们如何以正确的方式实现这一点?

const [getSettings, { isLoading, data: Settings }] =useSettingsMutation();
  const [getMenu] =useMenuMutation();
  const [getServices] = useServicesMutation();
  useEffect(() => {
    const obj = {
      Name: "someNme",
    };
    if (obj) getSettings(obj);
    if (Settings?._id ) {
      const id = settings._id;
       getServices(id);
     getMenu(id);
     getServices(id);
    }
  }, []);
xpcnnkqh

xpcnnkqh1#

useMutation将返回一个promise,你可以直接等待这个承诺来得到返回结果:

const [getSettings, { isLoading, data: Settings }] = useSettingsMutation()
const [getMenu] = useMenuMutation()
const [getServices] = useServicesMutation()
useEffect(() => {
  ;(async () => {
    try {
      const obj = {
        Name: 'someNme',
      }
      const data = await getSettings(obj).unwrap()
      if (data._id !== undefined) {
        const id = data._id
        getServices(id)
        getMenu(id)
        getServices(id)
        // ...
      }
    } catch (err) {
      // ...
    }
  })()
}, [])

相关问题