파파비의 블로그

플러터, flutter) 인수가 필요한 콜백메서드를 전달하는 방법 본문

개발/flutter

플러터, flutter) 인수가 필요한 콜백메서드를 전달하는 방법

N. Dave 2020. 5. 25. 16:47
반응형

보통은 메서드를 인수로 전달할때는 레퍼런스만 전달하기 때문에 메소드의 이름만을 전달하게 된다.

그런데 이런 경우에는 메서드가 실행할 때 인수를 필요로 하더라도 우리는 전달할 수가 없다.

(사실은 있다. 메소드 자체가 해당 콜백메서드랑 똑같은 인수를 전달받는 형태라면, 그냥 레퍼런스를 전달해도 된다)

 

이를 해결하기 위한 한가지 방법은 위 코드대로

콜백메소드에 익명함수를 전달하고 익명함수의 바디에 우리가 원하는 함수를 넣는 것이다.

익명함수 자체가 메모리에 올라가게 되어 나중에 필요할 때 그대로 실행된다.

그래서 바디에 우리가 인수까지 넣어서 실행되도록 해두면 해결된다.

 

그리고 만약 콜백메서드에서 무조건인수를 받아야하는데, 사용을하지 않는다면 

컨벤션으로 인수의 이름을 _로 지정해둔다

텍스트필드가 제출될 때, 메소드를 실행하는데, 거기에서 전달받는 value 값이 사실은 필요가 없다. 그래서 _로 해두고

사용하지 않음을 표시한다

반응형
Comments