Добрый вечер!
Уже голову и гугл сломал с данной проблемой, сразу к коду:
Есть компонент который отправляет данные поста в vuex:
<template>
<div v-for="post in content_data" :key="post.id">
<!-- content_data это очевидно массив с постами -->
<!-- Просто фиксирую внимание, так как дальше фигурирует данный массив в описании -->
<button @click="post_edit(post)">
<p>
Редактировать
</p>
</button>
</div>
</template>
<script>
export default{
props:['post', 'content'],
methods:{
post_edit(i){
this.$store.dispatch('full_view', {i:2,d:i})
}
}
}
</script>
Далее через action
full_view я сохраняю данные в state:
export default{
state:{
full_view_id: 0,
full_view_data: false
},
getters:{
full_view_id:(state)=>state.full_view_id,
full_view_data:(state)=>state.full_view_data
},
actions:{
full_view({state}, d){
state.full_view_id=d.i
if(d.d){
state.full_view_data=d.d
}else{
state.full_view_data=false
}
}
}
}
Суть проблемы в том что у меня есть компонент который редактирует пост, он же в свою очередь принимает данные с геттера full_view_data если он !== false, далее сохраняет в память компонента и после чего уже можно менять поступившие данные.
Как выглядит
full_view_data если он !== false:
{
'text':'Hello World!',
'files':[{'id':0,'filename':'helloworld.jpg'}]
}
Так вот, когда уже все данные в компоненте, всё успешно отобразилось, нужно обновить
'files':[{'id':0,'filename':'helloworld.jpg'}]
в
'files':[{'id':0,'filename':'goodbyeworld.jpg'}]
, ну и вот при обновлении памяти компонента обновляется массив
content_data.
Память компонента выглядит так:
data(){
return{
post_data: this.$store.getters.full_view_data
//{
// 'text':'Hello World!',
// 'files':[{'id':0,'filename':'helloworld.jpg'}]
//}
}
},
Если более упрощенно, то компонент1 отдает данные о посте в vuex память, а в свою очередь другой компонент2 берет эти данные из памяти сохраняет у себя для дальнейшего редактирования, но при редактировании меняются входящие данные компонента1.
Как решить эту непростую проблему? То голову уже сломал, буду очень благодарен за любой ответ и предположение:)
Спасибо!