@dragon11
web программист

Не могу понять в чем проблема с Vuex, пишет Error in render: «TypeError»?

Добрый день.
Ввожу адрес в командной строке браузера localhost:8080/product/1
Не могу никак понять, почему когда я распечатываю объект {{loadProduct}}, распечатывается без проблем,
5c64522718fb6905928626.jpeg5c6452175b7fb197572284.jpeg

а когда указываю какое-то свойство объекта {{loadProduct.price}}, то в консоле получаю ошибку, но при этом свойство выводится на экран.
5c64524859b2f334798354.jpeg5c64524f8eedc920094176.jpeg

Если кто знает подскажите пожалуйста.
Заранее благодарен.
  • Вопрос задан
  • 77 просмотров
Решения вопроса 2
yarkov
@yarkov Куратор тега Vue.js
Помог ответ? Отметь решением.
Вот что заставляет постить код картинками? Капец...
По делу: напишите так -
<span v-if="loadProduct">{{ loadProduct.price }}</span>
Ответ написан
Комментировать
@2perca
Проблема в том, что в момент обращения в свойству price, loadProduct этого свойства еще не имеет. В state необходимо добавить это свойство с дефолтным значением, например 0 или null, null при рендере будет пустой строкой. Тогда, ошибки не будет, а к моменту когда там появятся реальные данные, гетер отработает и отрендерит их.
Еще несколько моментов:
1. Не используйте пропсы в таком виде, вот так будет намного лучше
props: {
    data: {
        type: Number,
        default: () => null
    }
}

2. id у вас есть в урле (в params), его не нужно пробрасывать через пропсы, используйте
this.$route.params
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы