Использование commit в действиях с обещаниями возвращает 'Getters & Setters' - PullRequest
0 голосов
/ 23 апреля 2019

Я использую 'действия' Vuex для извлечения из моей базы данных через API.

Это работает хорошо, и у меня есть console.log(jsonResponse), который показывает правильные данные.

Однако, когда я добавляю commit('updateQuestions', jsonResponse) к изображению, возвращаемые значения для всех полей равны "Setters & Getters"

store.js:

mutations: {
    updateQuestionsInit: (state, payload) => {
        state.questions.init = payload
    }
},
actions: {
    onInit: async ({commit}) => {
        try {
        let response = await fetch('http://localhost:8080/api/mongo/initialforms')

            if (response.ok) {
                let jsonResponse = await response.json()
                console.log(jsonResponse)
                // Omitting the below line means it works.
                commit('updateQuestionsInit', jsonResponse)
            }
        }
        catch (error) {
            console.log('ERROR', error)
        }
    }
}

Результаты

Ожидаемые результаты

[
    {
        id: 0,
        type: "dropdown",
        value: "sku",
    }, ...
]

Фактические результаты

[
    {
        id: Getter & Setter,
        type: Getter & Setter
        value: Getter & Setter,
        … 
    }, ...

]

Почему это происходит и как это можно исправить?

1 Ответ

0 голосов
/ 23 апреля 2019

Вы используете Firefox? Другие испытывали подобные проблемы, но для них это, казалось, работало на хроме. Очевидно, что Firefox показывает «Установщики и получатели» в консоли, но базовые значения верны.

-> Переключитесь на Chrome и посмотрите, остается ли проблема.


Ссылки

Vue Getter & Setter вместо фактических значений в ответе бэкэнда

https://discourse.mozilla.org/t/webextension-apis-made-as-getter-setter-lazily-evaluating-to-functions-beware-of-mocking-for-unit-tests/30849

...