Transmettez le paramètre d'état défini par useEffect à queryFn de la requête RTK
P粉364642019
P粉364642019 2023-09-13 12:37:44
0
1
511

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

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

Requête RTKcreateApiqueryFn:

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'utilisationuseEffect使用组件来设置传递给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粉364642019
P粉364642019

répondre à tous (1)
P粉529245050

Vous transmettez un argument booléenusingAsSignUp传递给authenticateWithFirebase突变端点的queryFn, mais cela donne toujoursundé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 valeurusingAsSignUp值作为signup传递到authenticateWithFirebase端点的queryFn在您的firebaseApiusingAsSignUp en tant que

signup au point de terminaison authenticateWithFirebase queryFn dans votre configuration firebaseApi.
await authenticateNow({ email, password, usingAsSignUp: signup });
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal
    À propos de nous Clause de non-responsabilité Sitemap
    Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!