sourcecode

Vue.js를 사용하여 $emit payload에서 값을 가져오려면 어떻게 해야 합니까?

copyscript 2022. 8. 21. 19:52
반응형

Vue.js를 사용하여 $emit payload에서 값을 가져오려면 어떻게 해야 합니까?

Conversation List(자녀 컴포넌트)에서 Conversation Model(부모 컴포넌트)까지 다양한 값을 가진 이벤트를 내보내고 있습니다.

대화 목록

getConversation(conversation_id, receiver_id, username, avatar){
  this.$emit('open-conversation', receiver_id, conversation_id, username, avatar);
}

컨버세이션 모델

Vue devtools 출력

[2,1,"Jeff","http://i.pravatar.cc/52"]

템플릿

<converstations-list v-if="showConversation == false" v-on:open-conversation="getConversation($event)"></converstations-list>

방법

getConversation(event){
    console.log(event.payload[0] + event.payload[1] + event.payload[2] + event.payload[2])
},

에러

"open-conversation" 이벤트 핸들러의 오류: "TypeError: 정의되지 않은 속성 '2'를 읽을 수 없습니다"

이해가 잘 안 돼요.이벤트가 기동하고 있으며 payload 객체가 에 있습니다.devtools제가 접근할 수 없는 곳이죠내가 뭘 잘못하고 있지?

자녀 컴포넌트에서 부모 컴포넌트로 전송되는 경우 내보내는 것과 같은 파라미터를 수신합니다.

제거하다$event에서getConversation핸들러:

<converstations-list v-if="showConversation == false" v-on:open-conversation="getConversation"></converstations-list>

를 실장합니다.getConversation방법은 다음과 같습니다.

 getConversation(receiver_id, conversation_id, username, avatar){
     // do whatever you want with that parameters
   }

언급URL : https://stackoverflow.com/questions/52939266/how-do-i-get-a-value-from-emit-payload-with-vue-js

반응형