recherche

Maison  >  Questions et réponses  >  le corps du texte

Transmettez le paramètre d'état défini par useEffect à queryFn de la requête RTK

J'ai mis le paramètre booléen usingAsSignUp 传递到 queryFn.

Malheureusement, usingAsSignUp 总是导致未定义!我如何获得它的值? usingAsSignUp 是由使用组件中的 useEffectl'état des réglages.

Requête RTK createApiqueryFn :

export const firebaseApi = createApi({
  reducerPath: "firebaseApi",
  baseQuery: fakeBaseQuery(),
  tagTypes: ["Auth"], //Optional, https://redux-toolkit.js.org/rtk-query/api/createApi#tagtypes
  endpoints: (builder) => ({
    authenticateWithFirebase: builder.mutation({
      async queryFn({ email, password, usingAsSignUp }) {
        try {
          const auth = getAuth(firebaseApp);
          const userCredential = usingAsSignUp ? 
          await createUserWithEmailAndPassword(auth, email, password) : 
          await signInWithEmailAndPassword(auth, email, password);
          return {
            data: {
              uid: userCredential?.user?.uid,
              email: userCredential?.user?.email,
              usingAsSignUp: usingAsSignUp,
            },
          };
        } catch (e) {
          return { error: e };
        }
      },
      providesTags: ["Auth"], //Optional, https://redux-toolkit.js.org/rtk-query/api/createApi#providestags
    }),
  }),
});

export const { useAuthenticateWithFirebaseMutation } = firebaseApi;

Statut d'utilisation useEffect使用组件来设置传递给queryFn :

import { useAuthenticateWithFirebaseMutation } from "../../persistence/apiSlices";

  const [signup, setSignup] = useState(true);
  const [email, setEmail] = useState("");
  const [password, setPassword] = useState("");
  const location = useLocation();

  const [authenticateNow, result, data] = useAuthenticateWithFirebaseMutation();

  useEffect(() => {
    location.pathname === "/login" ? setSignup(false) : setSignup(true);
  }, [location.pathname] );

  async function onSubmitACB() {
    await authenticateNow({ email, password, signup });
  }

P粉364642019P粉364642019443 Il y a quelques jours582

répondre à tous(1)je répondrai

  • P粉529245050

    P粉5292450502023-09-14 00:34:54

    Vous transmettez un argument booléen usingAsSignUp 传递给 authenticateWithFirebase 突变端点的 queryFn, mais cela donne toujours undéfini< /代码>. Cela peut être dû au fait que vous ne transmettez pas correctement les paramètres du composant.

    Pour corriger cette erreur, vous devez transmettre la valeur usingAsSignUp 值作为 signup 传递到 authenticateWithFirebase 端点的 queryFn在您的 firebaseApiusingAsSignUp en tant que

    signup au point de terminaison 🎜authenticateWithFirebase 🎜queryFn dans votre configuration 🎜firebaseApi. 🎜
    await authenticateNow({ email, password, usingAsSignUp: signup });

    répondre
    0
  • Annulerrépondre