Size: a a a

Nuxt.js — русскоговорящее сообщество

2020 February 05

GA

Golovachov Anton in Nuxt.js — русскоговорящее сообщество
коллеги, помогите пожалуйста в axios request добавить значения в params по умолчанию, пробую в перехватчике, - работает, но только на SSR
источник

МИ

Мясников Игорь in Nuxt.js — русскоговорящее сообщество
DreaMinder
еси твоя функия отдает массив роутов то они будут сгенерированы. чего-то не хватает - дебаж свою функцию
Функция отдает все роуты которые есть. На страницы переходит, а ошибка только при обновлении в браузере(f5) динамических страниц
источник

МИ

Мясников Игорь in Nuxt.js — русскоговорящее сообщество
DreaMinder
еси твоя функия отдает массив роутов то они будут сгенерированы. чего-то не хватает - дебаж свою функцию
Error generating hospital/post/имя- где имя - slug каждого поста из бд .
При mode universal - динамические страницы не генерятся с ошибкой выше
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
Добрый день, а  не поможете?
В общем такая ситуация вот что делаю на странице

       async mounted() {
           await this.fetchSomething();
       },

       methods: {
           async fetchSomething() {
               this.aboutContent = await this.$axios.$get('/pageInfo?page=about');
               console.log(this.aboutContent);
               return this.aboutContent;
           },
       }
в консольке объект с данными все приходит с api.

в разметке делаю так aboutContent есть в data объявлен как пустой объект.
       <company-info class="about__companyInfo" :aboutContent="aboutContent"/>
       <our-values class="about__ourValues" :aboutContent="aboutContent"/>
в общем такое дело в компонент company-info все ок, вывожу данные
   <div class="companyInfo">
       <div class="container">
           <h1 class="companyInfo__title">{{aboutContent.h1}}</h1>
           <div class="companyInfo__textContent" v-html="aboutContent.text">
           </div>
       </div>
   </div>
а вот в компоненте ourValues
   <div class="ourValues">
       <div class="container">
           <h2 class="ourValues__title">{{aboutContent.values.title}}</h2>
           <ul class="ourValues__list">
               <li class="ourValues__item" v-for="value in aboutContent.values.items">{{value}}</li>
           </ul>
       </div>
   </div>
пишет Cannot read property 'title' of undefined
Не понимаю почему так происходит
источник

DS

Denis Strokov in Nuxt.js — русскоговорящее сообщество
Nikita Ni
Добрый день, а  не поможете?
В общем такая ситуация вот что делаю на странице

       async mounted() {
           await this.fetchSomething();
       },

       methods: {
           async fetchSomething() {
               this.aboutContent = await this.$axios.$get('/pageInfo?page=about');
               console.log(this.aboutContent);
               return this.aboutContent;
           },
       }
в консольке объект с данными все приходит с api.

в разметке делаю так aboutContent есть в data объявлен как пустой объект.
       <company-info class="about__companyInfo" :aboutContent="aboutContent"/>
       <our-values class="about__ourValues" :aboutContent="aboutContent"/>
в общем такое дело в компонент company-info все ок, вывожу данные
   <div class="companyInfo">
       <div class="container">
           <h1 class="companyInfo__title">{{aboutContent.h1}}</h1>
           <div class="companyInfo__textContent" v-html="aboutContent.text">
           </div>
       </div>
   </div>
а вот в компоненте ourValues
   <div class="ourValues">
       <div class="container">
           <h2 class="ourValues__title">{{aboutContent.values.title}}</h2>
           <ul class="ourValues__list">
               <li class="ourValues__item" v-for="value in aboutContent.values.items">{{value}}</li>
           </ul>
       </div>
   </div>
пишет Cannot read property 'title' of undefined
Не понимаю почему так происходит
у тебя видимо в момент первого рендера еще не заполнено aboutContent и иже с ним values, объяви структуру объекта полностью или сверху навесь v-if который будет проверять что-то в стиле aboutContent !== null чтобы разметка даже не рендерилась, пока данных нету
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
Denis Strokov
у тебя видимо в момент первого рендера еще не заполнено aboutContent и иже с ним values, объяви структуру объекта полностью или сверху навесь v-if который будет проверять что-то в стиле aboutContent !== null чтобы разметка даже не рендерилась, пока данных нету
спасибо)А как лучше?
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
Denis Strokov
у тебя видимо в момент первого рендера еще не заполнено aboutContent и иже с ним values, объяви структуру объекта полностью или сверху навесь v-if который будет проверять что-то в стиле aboutContent !== null чтобы разметка даже не рендерилась, пока данных нету
я пробывал v-if не на нал проверять сейчас сделал как вы посоветовали, но почему то ошибка та же
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
<div class="about" v-if="aboutContent !== null && aboutContent !== undefined">
Если закоментить второй компонент то все ок. Все в целом одинакого.
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
вот в консоли
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
спасибо если что получилось сделав так
{{aboutContent.values['title']}} вместо {{aboutContent.values.title}
источник

DS

Denis Strokov in Nuxt.js — русскоговорящее сообщество
Nikita Ni
я пробывал v-if не на нал проверять сейчас сделал как вы посоветовали, но почему то ошибка та же
aboutContent может быть и object у которого просто нету поля values и проверка будет проходить, но код продолжит не работать, нужно проверять и values
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
Denis Strokov
aboutContent может быть и object у которого просто нету поля values и проверка будет проходить, но код продолжит не работать, нужно проверять и values
hasOwnProperty? не уверен что так пишется
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
или просто через точку aboutContent.values !== null?
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
ну я понял о чем вы благодарю:)
источник

DS

Denis Strokov in Nuxt.js — русскоговорящее сообщество
Nikita Ni
или просто через точку aboutContent.values !== null?
ну лучше на тип проверять, typeof abountContent === 'object' не null может быть и string и undefined )
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
Denis Strokov
ну лучше на тип проверять, typeof abountContent === 'object' не null может быть и string и undefined )
Длиновато получается если вставлять такую проверку в div , просто ниже еще куча компонентов. Вы говорили о том что бы я объявил структуру заранее
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
Как я могу это сделать, т.е сперва законсолить и потом ручками переписать в data и так всегда?Или же в каждом компоненте делать v-if на родителя и  прописывать проверку уже внутри для тех свойств которые нужны. Я ток учусь сори за допросы можете не отвечать если лень)
источник

Д

Деда in Nuxt.js — русскоговорящее сообщество
Я бы не писал все эти условия в аттрибутах, вынеси в computed
источник

ДЛ

Давид Либерман in Nuxt.js — русскоговорящее сообщество
вопрос: с нукстом нельзя сделать чтобы prism.js не добавлялся в бандл? у гатсби заметил что он все отрисовывает на сервере, даже при навигации на клиенте. ощущение что с нукстом так вообще нельзя
источник

NN

Nikita Ni in Nuxt.js — русскоговорящее сообщество
Деда
Я бы не писал все эти условия в аттрибутах, вынеси в computed
Хорошо сейчас сделаю, спасибо
источник