у меня есть 2 компонента, мне необходимо чтобы при срабатывание события в компоненте "А" данные присваивались в форму компонента "B",
Я использую vuex
компонент "A"
<ul class="article-list">
<li class="article__item" v-for="(item, index) in postsMin" :key="index">
<article-item @click.native="pushEditData(item)" :options="item"></article-item>
</li>
</ul>
js компонента "А"
export default {
methods: {
pushEditData (data) {
this.$store.dispatch('UPDATE', data)
}
},
}
store
export default {
state: {
update: {
title: '',
discription: '',
author: '',
like: '',
dateCreate: '',
dateUpdate: ''
}
},
mutations: {
setUpdate: (state, payload) => {
state.update = {
title: payload.title,
discription: payload.discription,
author: payload.author,
like: payload.like,
dateCreate: payload.dateCreate,
dateUpdate: payload.dateUpdate
}
}
},
actions: {
UPDATE: ({ commit }, payload) => {
commit('setUpdate', payload)
}
},
getters: {
getUpdate: state => state.update
}
}
компонент "B"
<form>
<b-field label="Заголовок">
<b-input class="title" v-model="title"></b-input>
</b-field>
<b-field label="Содержимое статьи">
<b-input type="textarea" v-model="update.discription"></b-input>
</b-field>
<div class="buttons edit__button">
<b-button @click="update">Применить</b-button>
</div>
</form>
js компонента "B"
export default {
props: [
'options'
],
data () {
return {
title: this.update()
}
},
methods: {
update () {
this.$store.dispatch('UPDATE', {
title: this.title
})
}
}
computed: {
update () {
return this.$store.getters.getUpdate.title
}
}
}
Как вариант Вы можете использовать в своих компонента мапинг вашего хранилища. т.е. внутри компонента Б сделать такую конструкцию:
computed: {
...mapState([
'update'
])
}
и просто через v-model отображать данные в компоненте Б сразу из хранилища. В компоненте А просто через action отправляете данные в vuex по стандартной схеме. Подробнее об этой механике описаны здесь https://vuex.vuejs.org/ru/guide/state.html ближе к концу страницы. v-model прямую в хранилище также позволит вам сохранять обновленные данные в компоненте Б без лишнего кода.
Если у вас в update будет содержаться не только одна форма, вы также можете осуществлять поиск и фильтрование данных из массива прямо в компоненте Б и также эффективно работать с v-model.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Мне нужно сделать точно такое же вью как на скриншоте отмечено красной линией
Есть класс в котором собираю данные и записываю их в файл
Как при возникновении исключения получить имя метода и класса в котором оно вызвано?