venom99
@venom99

Как перезаписать данные в state, на те что приходят с backend?

Данные с сервера приходят в формате JSON. Изначально в state пустые значения, и я не понимаю как перезаписать их на те что приходят с сервера. Сейчас данные с сервера просто добавляются в state, вместо того чтобы перезаписывать старые значения.
P.S. Для наглядности вывел то что получается на экран

index.js
import index, {createStore} from "vuex";
import axios from "axios";
import router from "@/router/router";

export default createStore({
    state: () => ({
        data: {

                id: 0,
                username: "",
                password: "",
                status: 0,

        },
}),
    getters: {
        new_username(state) {
            return state
        },
    },
    mutations: {
        setlogin(state,username) {
            state.username = username;
        },
        setpassword(state, password){
             state.password = password;
        },

    },
    actions: {
        async login() {
            try {
                const {id, username, password, status} = this.state;
                const {data} = await axios.post('http://127.0.0.1:5000/login', {
                    id,
                    username,
                    password,
                    status
                })
                const mydata = (JSON.parse(data))
                if (mydata[3] === 1) {

                    return router.push('/main')
                }
                if (mydata[3] === 2) {
                    return router.push('/teacher')
                }
            } catch (e) {
                return alert('Неверный логин или пароль');
            }
        }

    },
})

60f03dc3e3dac796466265.jpeg
  • Вопрос задан
  • 156 просмотров
Решения вопроса 1
Kozack
@Kozack
Thinking about a11y
Вы в мутации изменяете рутовый объект. То есть вы написали что-то в таком духе
const state = {data: {user: ''}}
state.user = '...' // <-- Изменяете не то поле

Вам нужно изменять подъобект data
const state = {data: {user: ''}}
state.data.user = '...' // <--
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 апр. 2024, в 20:09
9000 руб./за проект
28 апр. 2024, в 19:54
2000 руб./за проект
28 апр. 2024, в 19:54
5000 руб./за проект