#arrays #vue.js #object #vuex
#массивы #vue.js #объект #vuex
Вопрос:
Я попытался отобразить список элементов с помощью Vuejs, приведенный ниже код является его упрощенной версией. В принципе, мне это нужно для отображения данных, состояние и данные отображаются в VueDevTool, но не на странице.
<template>
<div>
<h1>{{this.sendersList.length}}</h1> <!-- 0 -->
<h1>{{senders.length}}</h1> <!-- 0 -->
</div>
</template>
<script>
export default{
data () {
return {
sendersList: []
}
},
created () {
this.$store.dispatch('getAllSenders', {
app_id: this.$route.params.chat_id
}).then(response => {
this.sendersList = response
})
},
computed: {
senders(){
return this.$store.getters.getAllSenders
}
}
}
</script>
Код хранилища возвращает данные как обычно, VueDevtool может их видеть, но я не могу найти способ отрисовки их во внешнем интерфейсе
getAllMessages(context, data){
return new Promise((resolve, reject) => {
axios.post('messages/getAllMessages', {
sender_id: data.sender_id
}).then(response => {
let payload = []
for (let index = 0; index < response.data.length; index ) {
payload.push({
message_id: response.data[index].message_id,
message_content: response.data[index].message_content,
message_type: response.data[index].message_type,
message_sentiment: response.data[index].message_sentiment,
sender_id: response.data[index].sender_id,
user_id: response.data[index].user_id,
from_sender: response.data[index].from_sender,
created_date: response.data[index].created_date,
})
}
context.commit('getAllMessages', payload)
resolve(payload)
}).catch(error => {
reject(error)
})
})
},
Комментарии:
1. @BoussadjraBrahim Я отредактировал выше, я проверяю VueDevtool, данные есть, они просто не отображаются.
2. лучше всего определить состояние в вашем хранилище и зафиксировать мутацию внутри обратного вызова axios в действии, а затем прочитать это состояние с помощью вычисляемого свойства
3. @BoussadjraBrahim Да, я пробовал, получал данные непосредственно из хранилища путем вычисления, произошло то же самое
4. Как вы это сделали, используя вычисляемое свойство
5. @BoussadjraBrahim Я отредактировал код, как указано выше, я вижу изменение состояния внутри Devtool, но во внешнем интерфейсе все остается без изменений
Ответ №1:
Попробуйте изменить это
<h1>{{this.sendersList.length}}</h1>
Для этого
<h1>{{sendersList.length}}</h1>