Saya baru menggunakan vue dan sedang cuba membuat paparan yang menggunakan kod untuk mengesahkan e-mel selepas seseorang mendaftar. Pada masa ini saya hanya mempunyai pandangan dan tiada apa-apa untuk menyambung ke e-mel atau menjana kod. Saya menggunakan pug, skrip taip dan scss dalam projek vue ini. Saya tahu masalah ini selalunya disebabkan kesilapan menaip, tetapi saya tidak menemuinya. idea?
Fail.vue:
<template lang="pug"> .Verify .Verify__focus .Verify__title Verify Your Email .Verify__form .Verify__field va-input.Verify__textInput( type="text", name="verificationCode", placeholder="Verification Code", v-model="text", @keyup.enter="verifyUser()" ) template(v-slot:prependInner="") va-icon(name="check_circle") .Login__buttonRow va-button.Login__submitButton(@click="verifyUser") Verify </template> <script lang="ts"> import {defineComponent, ref} from "vue"; import useVerify from "@/views/Signup/Verify/useVerify"; /** * Assemble the Verify reactivity. * * @returns Data for the component to use. * - verificationCode: verification code the user is sent * - verifyUser: function to call to carry out the verification operation. */ function setup() { const verificationCode = ref(""); const { verifyUser } = useVerify(verificationCode); return { verificationCode, verifyUser, }; } export default defineComponent({ name: "Verify", setup, }); </script> <style lang="scss"> .Verify { position: fixed; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; &__focus { width: 360px; max-width: 95vw; } &__field { padding-bottom: 0.5em; } &__buttonRow { display: flex; justify-content: flex-end; } &__title { font-size: 1.2em; padding-bottom: 0.5em; text-align: center; } } </style>Fail
.ts:
import { Ref } from "vue"; import { useApolloClient } from "@vue/apollo-composable"; import { ValidatedUser } from "@/models"; import { gql } from "graphql-tag"; const query = gql` query Verify($input: Verify) { Verify(input: $input) { __typename token user { email id } } } `; /** * Retrive apollo client and provide useVerify * function to validate input and execute Verify process. * * @param verificationCode - reactively wrapped email address of the user signing up. * @returns useVerify composition functionality. */ export default function useVerify(verificationCode: Ref<string>): { verifyUser: () => Promise<void>; } { const { resolveClient } = useApolloClient(); /** * Execute the Verify process for the given verification code. */ async function verifyUser(): Promise<void> { if (verificationCode.value !== "123456") { return; } else{ console.log("worked"); //TODO: auth here } const client = resolveClient(); const variables = { input: { username: verificationCode.value }, }; const response = await client.query({ query, variables }); const validatedUser: ValidatedUser = response.data.Verify; console.log("USER:", validatedUser); console.log("verificationCode: ", variables); } return { verifyUser }; }
Terima kasih terlebih dahulu!
Nampaknya baris ini mencetuskan pepijat dalam templat