Задать вопрос
gordon_shamway
@gordon_shamway

Как извлечь значение из props и передать его в Vue?

Как извлечь значение из props: ['id ] (число) и передать его в const app = new Vue({})?
//component
<template><--html tags --></template>

<script>
  export default {
    props: ['messages','id']
  };
</script>

<-- Laravel view -->
<div class="panel-body">
        <chat-messages :messages="messages"
           :id="{{ $room->id }}"></chat-messages>
</div>

//app.js
require('./bootstrap');

Vue.component('chat-messages', require('./components/ChatMessages.vue'));
Vue.component('chat-form', require('./components/ChatForm.vue'));

const app = new Vue({
    el: '#app',
    data: {
        messages: [],
       // можно как то так id:this.props['id'] ???
      
    },

    created() {

      console.log(this.id+'slave')
        this.fetchMessages(); // нужно id сделать параметром это метода
        Echo.private('chat')
  .listen('MessageSent', (e) => {
    this.messages.push({
      message: e.message.message, // maybe need add room id I NOT KNOW maybe here is error
      user: e.user,
      room: e.room
    });
  });
  console.log(this.messages)
    },

    methods: {
        fetchMessages(id) {
            axios.get('/messages/:id').then(response => {
                this.messages = response.data;
                console.log(this.id+'here')
            });
        },

        addMessage(message) {
            this.messages.push(message);

            axios.post('/messages', message).then(response => {
              console.log(response.data);
            });
        }
    }
});
  • Вопрос задан
  • 1742 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
dosya97
@dosya97
Fullstack web-developer
Компоненты довольно закрытые штуки. Дать им что-то можно через props, а получить через емит:
https://vuejs.org/v2/api/#vm-emit
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы