Vue: начальный запуск вычисляемого свойства - PullRequest
0 голосов
/ 28 января 2019

В моем компоненте Vue у меня есть вычисляемое свойство, которое отслеживает состояние и компонент и возвращает объект.

        currentOrganization () {
            if (this.$store.state.organizations && this.selectedOrganization) {
                return this.$store.state.organizations.filter(org => org.id === this.selectedOrganization)[0];
            }
        }

К сожалению, это свойство не обновляется автоматически при загрузке компонента, хотя я вижу, что у меня есть и this.$store.state.organizations, и this.selectedOrganization.Однако он обновляется, когда я отправляю действие в мое хранилище Vuex через компонент select, указанный ниже:

                <b-form-select id="orgSelect"
                               v-model="selectedOrganization"
                               :options="this.$store.state.organizations.map(org => {return {value: org.id, text:org.name}})"
                               size="sm"
                               v-on:input="currentOrganizationChange()"
                               class="w-75 mb-3">
                    <template slot="first">
                        <option :value="null" disabled>Change Organization</option>
                    </template>
                </b-form-select>

Компонент отправляет действие Vuex:

            currentOrganizationChange () {
                this.$store.dispatch('setCurrentOrganization', this.selectedOrganization);
            },

Как я могу сделатьcurrentOrganization() вычислить изначально?

Ответы [ 2 ]

0 голосов
/ 28 января 2019

Вычисленное не будет вычисляться, пока вы его не используете.

console.log, или просто напишите currentOrganization;где-нибудь в коде, который выполняется, и он будет вычислять:)

0 голосов
/ 28 января 2019

Вы должны убедиться, что ваши вычисления всегда возвращают значение.Линтер предупредил бы вас об этой ошибке.Скорее всего, ваше состояние ухудшается - возможно, this.selectedOrganization является ложным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...