programing

Vue $emit 인수를 이미 인수가 있는 함수에 전달

kingscode 2022. 9. 20. 22:06
반응형

Vue $emit 인수를 이미 인수가 있는 함수에 전달

내 컴포넌트에는 다음과 같은 것이 있습니다.

template: <input @blur="$emit('customEvent', arg1)" v-model="arg1">

html 템플릿에는 다음과 같은 내용이 있습니다.

<component @customEvent="method1(arg2)"></component>

파라미터를 지정해야 합니다(arg2)를 에 송신합니다.method1()이 기능을 사용할 수 있도록arg1부터$emit().

(Vue 인스턴스에서) 다음을 시도했습니다.

method1(arg2, arg1) {
      console.log("This is the arg2: " + arg2);
      console.log("This is the arg1: " + arg1);
    }

물론, 나는 그것들을 되돌리려고 노력했지만, 작동하지 않았다.arg1는 통과되지 않고 교체됩니다.

네임스페이스가 있어야 한다는 것을 알고 있습니다(아마도 다음과 같습니다).arg1=arg1이런 건 못 찾았어요

통과하면 된다$event메서드에 포함시킵니다.

$eventemote 함수에서 통과하는 payload가 됩니다.할 때$emit('customEvent', arg1),arg1로서 통용되다$event@customEvent로 이동합니다.

<component @customEvent="method1($event, arg2)"></component>

및 방법:

method1(arg1, arg2) {
  console.log("This is the arg2: " + arg2);
  console.log("This is the arg1: " + arg1);
}

개념 실증: https://jsfiddle.net/jacobgoh101/e8a5k3ph/1/


대체 솔루션:

<component @customEvent="(eventPayload) => method1(eventPayload, arg2)"></component>

언급URL : https://stackoverflow.com/questions/49729384/vue-emit-passing-argument-to-a-function-that-already-have-arguments

반응형