본문 바로가기
flutter

플러터에서 함수를 인자로 전달하는 방법

by cactuslog 2024. 3. 17.

 

플러터에서 값이 아닌 function(함수)를 argument(인자)로 넘겨야 하는 경우가 발생한다.

 

예시 상황

 

1. 부모 위젯에서 자식 위젯에게 부모 위젯의 state를 변경하는 액션 함수를 넘긴다.

 

2. 자식 위젯에서 버튼을 클릭하면 넘겨 받은 액션 함수를 실행시킨다.

 

3. 부모 위젯의 state가 변경된다.

 

 

자식 위젯 정의

final void Function(String name) onPressed;
class TestWidget extends StatefulWidget {
  final void Function(String name) onPressed;
  const TestWidget({super.key, required this.onPressed});

  @override
  State<TestWidget> createState() => _TestWidgetState();
}

class _TestWidgetState extends State<TestWidget> {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: ElevatedButton(
          onPressed: () => widget.onPressed('jun'), child: Text('button')),
    );
  }
}

 

 

부모 위젯에서 함수 넘기기

 

TestWidget(onPressed: (String name) => setState(() {
  username = name;
})),

'flutter' 카테고리의 다른 글

[BoxFit] 이미지 크기 조절 fit 옵션  (0) 2024.10.05