Да, эта библиотека работает только на клиенте, то есть ее вызов доступен только когда скрипт исполняется в браузере
А можно тогда как-то отловить изменение во vuex, чтобы на клиенте смог вызвать эту библу?
https://nuxtjs.org/docs/2.x/directory-structure/plugins
Я только не очень понимаю причем тут Vuex, вы может опечатались
там в чем прикол, во vuex я делаю добавление товара в корзину и хочу вывести уведомление, что товар добавился. Ранее с NUXT просто не работал и во VUEX спокойно работала библа, а тут с SSR не хочет
Это архитектурно неправильно, у вас мутация - это просто сеттер, обновляющий состояние, вы можете реагировать на изменения например из вашего App.vue, с точки зрения нотификации сср не имеет объекта window и дом, соответственно юай библиотеки без него исполняться не могут
Вас в принципе должен напрягать тот факт, что вы обращаетесь к чему-то, называющееся с нижнего подчеркивания, это отличная иллюстрация того, что нужно задуматься над архитектурой
если вы про _vm, то это в доке либы так написано
ага, а как правильно поступить? Вот есть метод addToCart Я здесь не могу вызвать метод toast, т.к. есть шанс, что во vuex товар не добавится в корзину, а уведомление об успехе будет уже. addToCart (product) { this.addProductToCart(product) } Метод addProductToCart - это экшен vuex addProductToCart ({ commit, state }, payload) { const item = state.cart.find(item => item.id === payload.id) if (item === undefined) { commit('ADD_PRODUCT_TO_CART', payload) } else { this._vm.$toast("Товар уже есть в корзине") } }
> Я здесь не могу вызвать метод toast, т.к. есть шанс, что во vuex товар не добавится в корзину, а уведомление об успехе будет уже. Можно дождаться завершения экшина и проверить состояние
Ну сделайте асинхронный action, где будут все проверки, в случае успеха реджект и обработку в методе
исключение из экшина ловить тоже не очень корректно
Что касается нукста, там же в либе есть гайд https://github.com/Maronato/vue-toastification
А как корректнее будет сделать?
Ну не исключеное, резолв реджект, я про это
Ок, в этом случае, наверное, норм
Обсуждают сегодня