Hola comunidad de Stackoverflow,
Tengo una aplicación Vue.js donde un usuario puede registrarse. El registro se muestra en tres componentes diferentes. Registro 1 (correo electrónico, contraseña), Registro 2 (información personal) y Registro 3 (preferencias).
Implementé una solicitud de publicación de API después de que el usuario presione registrarse en la primera página de acuerdo con bezkoder: https://www.bezkoder.com/vue-3-authentication-jwt/
Lo que estoy tratando de hacer ahora es en lugar de registrar al usuario directamente, quiero guardar los datos del usuario en mi tienda vuex y enviar la solicitud de publicación de API en el Registro 3 en lugar del Registro 1, cuando tenga toda la información del usuario.
Desafortunadamente, no puedo crear un nuevo estado en mi tienda. Este es mi código auth.module.js (tienda):
import AuthService from "../services/auth.service"; const user = JSON.parse(localStorage.getItem("user")); const initialState = user ? { status: { loggedIn: true }, user } : { status: { loggedIn: false }, user: null }; export const auth = { namespaced: true, state: initialState, actions: { login({ commit }, user) { return AuthService.login(user).then( (user) => { commit("loginSuccess", user); return Promise.resolve(user); }, (error) => { commit("loginFailure"); return Promise.reject(error); } ); }, logout({ commit }) { AuthService.logout(); commit("logout"); }, register({ commit }, user) { return AuthService.register(user).then( (response) => { commit("registerSuccess"); return Promise.resolve(response.data); }, (error) => { commit("registerFailure"); return Promise.reject(error); } ); }, }, mutations: { loginSuccess(state, user) { state.status.loggedIn = true; state.user = user; }, loginFailure(state) { state.status.loggedIn = false; state.user = null; }, logout(state) { state.status.loggedIn = false; state.user = null; }, registerSuccess(state) { state.status.loggedIn = true; }, registerFailure(state) { state.status.loggedIn = false; }, }, };Entonces, necesito crear un estado para mis datos de usuario (correo electrónico, contraseña, preferencias) y luego una acción y un método para guardar mis datos de usuario del Registro 1 y 2.
¿Alguien tiene idea de cómo podría implementar esto? ¿O tienes una mejor idea de cómo crear mi registro?
Me alegro por todos tus consejos y trucos :)
Podría arreglarlo. Creé un nuevo archivo llamado "patient.module.js" y allí pude configurar los estados. Mi código es el siguiente:
export const patient = { namespaced: true, state: { email: null, password: null, location: [], specialty: [], attribute: [], language: [], gender: [], }, actions: { register({ commit }, patient) { return new Promise((resolve) => { commit("setPatientData", patient); resolve(); }); }, }, mutations: { setPatientData(state, patient) { Object.assign(state, patient); }, }, };