Kenan
Или также диву давать id?
Nikita
Как решить проблему. Vue при создании экземпляра в created делает запрос через axios, в ответе данные записываются в Vuex. Данные - массив. И так как все асинхронно, то уже подргужается компонент, который использует эти данные из Vuex, и компонент при created выводит ошибку что ссылается на undefined в Vuex. Как быть? Как дождаться выполнения всех ajax запросов в created vue приложения, и только после этого дальше рендерить компоненты.
1337
beforeRouteEnter
1337
можно туда подключить, тогда переход будет после загрузки данных
1337
а
1337
ну и пропиши в стартовом состоянии vuex нужное свойство
1337
чтобы оно было не undefined, а просто пустой массив
Виктор
Привет) есть вопросик, имеется бэк на Django в шаблоне пробрасываются переменные с бэка(по тому же синтаксису {{ololo}})
в том же шаблоне подключаю vue component который сделан в group.js, почему-то не могу взаимодействовать с компонентом из html файла, можете подсказать как сделать лучше?
Виктор
Виктор
Никита Лазарев
1337
да просто в дефолт state надо засунуть нужное свойство со значением пустого массива []
1337
компонент отрендерится нормально
Nikita
Проблема в том, что там обращение идет к первому элементу массива. Даже если сделать его [], то будет undefined.
1337
и данные появятся как только загрузятся
Hedint
ну так проверяй, пуст ли массив, не?)
1337
1337
это не правильный подход скорее всего
Nikita
Nikita
Инициализация vue
1337
не
1337
я про то, где вывод
1337
где обращение к элементам массива
Nikita
Nikita
Это в created компонента
R
Слушайте у нас есть тут чек по имени Dmitry Gankevich ?
1337
там разве не так должно быть?
this.$store.getters.getObjectCategories()[0].id
Alex
Почему?
https://medium.com/@dan_abramov/two-weird-tricks-that-fix-react-7cf9bbdef375 аналогично и для вью
R
по поиску не могу найти может как то по другому сидит чек
Nikita
Работает и так и так.
1337
сделай геттер getObjectCategoryId
1337
в нем возвращай либо id если в массиве есть элементы
1337
либо null
Nikita
Не подойдет. Мне обязательно нужно всегда в модели в category_id при created компонента был первый элемент из тех данных, которые вернул запрос через axios и запихнул в Vuex. Null не допускается
Nikita
Т.е. как то нужно обязательно дождаться пока ajax выполнится.
Виктор
можете помочь?
Виктор
Привет) есть вопросик, имеется бэк на Django в шаблоне пробрасываются переменные с бэка(по тому же синтаксису {{ololo}})
в том же шаблоне подключаю vue component который сделан в group.js, почему-то не могу взаимодействовать с компонентом из html файла, можете подсказать как сделать лучше?
Виктор
Виктор
Никита Лазарев
1337
что значит не можешь взаимодействовать?
Hedint
1337
Никита Лазарев
Виктор
что значит не можешь взаимодействовать?
пытаюсь изменить значение переменной showModal, но получаю (Property or method "showModal" is not defined on the instance but referenced during render.)
Виктор
Nikita
Ну это не совсем его повесит. Все равно интерфейс не нужно отображать пока этих данных нет. В данном случае это неправильно с точки зрения бизнес логики.
Roman
Hedint
ну так для этого обычно делают что-то вроде:
если нет данных, отобразим заглушку на этот случай. если данные есть - отобразим данные
Roman
Hedint
Можно и так. Тут вообще много решений, и синхронный запрос - худшее из них)
1337
если сервер залагает или интернет тупой?
1337
будет 10 секунд белая страница?
1337
без возможности нажать кудато
Nikita
Да, про такой подход тоже думал. Будет легче обьяснить на конкретном примере где это используется. Этот массив из Vuex используется для банального отображения options select'a. При created компонента в модели, которая привязана к этому селекту должен подставляться первый элемент из этого селекта.
Если когда вызвался компонент, данные в Vuex еще не пришли, сделать заглушку, Но тогда как после того, как данные загрузились в Vuex, заменить заглушку на первый элемент из Vuex. Через события?)
Nikita
Все работало пока ajax выполнялся в created самого компонента:D
Но данные понадобились в других частях приложения.
Stanislav
Stanislav
Предлагаю банить тех, что предлагает делать синхронные запросы
1337
1337
там же биндинг на модель
1337
меняешь модель - меняется селект
1337
Stanislav
Demetrio
Stanislav
😄
Максим
подскажите, есть где то подборки layout для vuetify, кроме дефолтных в их доках?
Anonymous
всем привет! есть компонент, я сделал к нему примесь:
// component.vue
import dfsMixin from '@/mixins'
export default {
name: 'AppNavigation',
props: {
items: {
type: Array,
required: true
}
},
mixins: [ dfsMixin ]
}
</script>
// mixin.js
export default {
methods: {
routeToURL: (itemUrl) => {
this.$router.push({ itemUrl })
}
}
}
// вызываю в темплейте так
<v-list-tile v-else :key="item.text" @click="routeToURL(item.url)">
ругается, что push на undefined, т.е. $router не определен. как можно в примеси компонента вызвать с контекста с роутом редирект?
Andrey
ссылайся на v-if="test" а не device.ios
Andrey
1337
сохранить в vuex стор
1337
мб?
Mr
прикрутите масюсенький vuex
Andrey
а чтов такой портянке не так?
1337
наверняка есть
1337
но я второй день пишу на vue))
1337
не шарю пока
Vadim
Вопрос. Чтобы v-model работал с vuex сделал как в документации:
user: {
get () {
return this.$store.state.user
},
set (value) {
this.$store.commit('updateUser', value)
}
}
В vue-devtools мутации updateUser нет, но если вывести значение user в консоль, то оно изменяется.
Оно так и должно работать?
Andrey
с роутером работали (как пример), а вызывали геттеры вуексовые не мапгеттерами?))
Andrey
так примерно такие же записи
Andrey
не очень понятно почему вас так тревожит такая запись