Как записать 1 объект массива в хранилище Vuex в VueJs - PullRequest
0 голосов
/ 19 апреля 2020

У меня небольшая проблема. Я посылаю запрос на сервер ios на сервер и получаю ответ от массива. На следующем шаге, когда пользователь щелкает по кому-то из этих объектов, мне нужно отправить данные в следующий Vue Компонент. сделайте, первый объект из списка отображается на следующем компоненте. Если кто-то знает, как решить эту проблему, я буду очень благодарен, это мой код из магазина Vuex

    function initialState () {
    return {
        accounts: [],
        activeAccount: {},
    }
}

    async getAccounts(ctx) {
        ctx.commit('setIsLoad', true);
        return new Promise((resolve, reject) => {
            getAccounts()
                .then(resp => {
                    if(resp.data.message)
                        ctx.commit('setAccounts', []);
                    else
                        ctx.commit('setAccounts', resp.data.accounts);
                        ctx.commit('setActiveAccount', resp.data.accounts[0]);
                        // ctx.commit('setActiveLs', resp.data.activeLs);
                    ctx.commit('setIsLoad', false);
                    resolve(resp.data)
                })
                .catch(error => {
                    console.log(error)
                    ctx.commit('setIsLoad', true);
                    reject(error)
                })
        })
    },

     selectAccount(ctx, account) {
        ctx.commit('setActiveAccount', account);
        ctx.commit('setActiveLs', account);
    },

    const mutations = {

    setAccounts(state, accounts)
    {
        state.accounts = accounts;
    },
    setActiveAccount(state, account)
    {
        state.activeAccount = account;
    },

}

это мой код в Vue Компонент

    <div class="card-body">
                            <ul class="list-group list-group-flush my-2" v-for="account in accounts" :key="account.ls">
                                <li class="list-group-item text-center dark-grey-text">
                                    <a @click="onClickAccountButton(account)" class="btn border btn-block black-text"><i class="fas fa-home fa-2x float-left text-primary"></i>{{account.ls}} {{account.name}} {{account.address}}</a>
                                </li>
                            </ul>
                            <router-link :to="{name:'stats'}" class="btn btn-block btn-success"><i class="fas fa-plus"></i> Add New Info</router-link>
                        </div>
    onClickAccountButton(account){
                this.selectAccount(account).then(() => {
                    this.$store.commit('account/setActiveAccount', account)
                    this.$router.push('/dashboard')
                })
                // this.$router.push('dashboard')

            },
...