У меня следующая проблема с магазинами nuxt, vue и vuex:
У меня есть специальный мобильный макет с двумя столбцами, которые переключаются при нажатии:
https://streamable.com/fqm8a
Как вы можете видеть, щелчок левой колонки показывает его, а клик правой - календарь.
Что я хочу улучшить сейчас: если я нажму на тизер в календаре, я хочу автоматически вставить сообщение в представление.
Пока у меня есть этот код на столбцах обтекания:
<template>
<div class="CalendarView">
<div v-on:click="detailViewActive ? toggleDetailView() : null" id="CalendarView" :class="['CalendarView__column', 'CalendarView__column--calendar', detailViewActive ? 'detail-view-active' : '']">
<div class="CalendarView__column-wrapper">
<slot name="column-left"></slot>
</div>
</div>
<div v-on:click="!detailViewActive ? toggleDetailView() : null" :class="['CalendarView__column', 'CalendarView__column--postdetail', detailViewActive ? 'detail-view-active' : '']">
<slot name="column-right"></slot>
</div>
</div>
</template>
Завершено: щелчок устанавливает detailViewActive
, который является логическим значением в хранилище vuex. И это меняет классы на столбцах, что активирует CSS-переходы.
Нет, я думал, что я открою компонент записи календаря, и я бы сделал еще один щелчок по пустой ссылке:
<nuxt-link class="PostTeaser__link" :to="link" v-on:click.native="!detailViewActive ? openDetailView() : null">
tags, date and title
</nuxt-link>
и метод:
openDetailView () {
this.log('open detail')
this.$store.commit('ui/OPEN_DETAILVIEW')
}
Это снова изменит логическое значение detailViewActive
в хранилище vuex на true.
Пока все хорошо: но теперь к проблеме:
Как только я нажимаю на nuxt-ссылку, которая запускает метод openDetailView
, щелчок по столбцу также запускается и
Он немедленно сбрасывает detailViewActive
.
(Открыть> Закрыть) одним щелчком мыши.
Итак
Кто-нибудь знает, как я могу решить это?
спасибо за любую подсказку.
Приветствия