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

And*_*man 5 redux react-redux redux-toolkit rtk-query

我正在使用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);
    }
  }, []);
Run Code Online (Sandbox Code Playgroud)

Gra*_*pes 1

useMutation会返回一个promise,你可以直接等待这个 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) {
      // ...
    }
  })()
}, [])

Run Code Online (Sandbox Code Playgroud)