매운만두맥주
1k
2021-07-21 14:20:01
1
105

뷰.js 이벤트버스 도와주세요 ㅠ


this 바인딩


EventBus.$on('eventName', function(data) {

                   this.local = data.abc 

                 }.bind(this)

);


이런식을 이벤트 버스에서 가져온 데이터를 해당 싱글 파일 컴포넌트의 data에 넣어주려고 하는데

안 됩니다 ㅠㅠ

 이벤트버스 안에서는  data.abc나 this.local이  콘솔로 찍히지만 

이벤트버스 밖에 콘솔을 찍었을땐 비어 있네요..


bind(this)를 해주어도 , 화살표 함수를 바꿔도 계속 이런 문제가 발생합니다..

0
  • 답변 1

  • 상저씨
    830
    2021-07-21 15:12:33

    import EventBus

    export default {

      data(){

        return {

           local : ""

        }

      }

      created(){

        EventBus.$on('eventName', function(data) {

                       this.local = data.abc 

         });

      }

     methods : {

        test(){

          console.log(this.local); // emit 되기전 "" , emit 된 후 data.abc

        }

      }

    }



    eventName의 Event가 emit됬을 때 test 메서드를 호출해보면 나오실거같은데여


    }

  • 로그인을 하시면 답변을 등록할 수 있습니다.