🌟

【Flutter】引数を持つコールバック関数を子 Widget で実行したい

2021/09/27に公開

そういう時、ありますよね。以下サンプルです。

子の Widget

class ChildWidget extends StatelessWidget {
  const ChildWidget({
    Key? key,
    required this.users,
    required this.onPressedCallback,
  }) : super(key: key);

  final List<User> users;
  final Function(int)? onPressedCallback;
  
  
  Widget build(BuildContext context) {
    return users.map(user) {
      SampleButton(
        ...
        onPressed: () => onPressedCallback(user.id)
      )
    }
  }
}

親側 (利用側)

ChildWidget(
 users: users,
 onPressedCallback: (userId) => _sampleFunction(userId),
)

...

void sampleFunction(int userId) {
  ...
}

親側で (userId) => _sampleFunction(userId), な風に書けば、子 Widget 側で引数ありのコールバック関数を実行できることを知った今日この頃でした。

Discussion