Dart 如何将事件类型传递给具有块模式的小部件?

Dart 如何将事件类型传递给具有块模式的小部件?,dart,flutter,Dart,Flutter,我正在尝试创建一个具有块模式和flatter\u block库的应用程序。它正在工作,但现在我想减少代码 我有很多: 飞奔 我正在一个小部件中转换它: 飞奔 但是我真的不知道如何将类型SetServicePrefs传递给我的小部件,并在onChanged函数中使用它 如何解决此问题?您可以在SettingTextField中添加其他回调字段: class SettingTextField extends StatelessWidget { final String text; final

我正在尝试创建一个具有块模式和
flatter\u block
库的应用程序。它正在工作,但现在我想减少代码

我有很多:

飞奔 我正在一个小部件中转换它:

飞奔 但是我真的不知道如何将类型
SetServicePrefs
传递给我的小部件,并在
onChanged
函数中使用它


如何解决此问题?

您可以在SettingTextField中添加其他回调字段:

class SettingTextField extends StatelessWidget {
  final String text;
  final String labelText;    
  final Function(PrefsBloc bloc, value) onChanged;

    ...

    TextField(
              inputFormatters: [BlacklistingTextInputFormatter(RegExp("[a-zA-Z]"))],
              decoration: InputDecoration(labelText: this.labelText),
              keyboardType: TextInputType.number,
              controller: _controller,
              onChanged: (value) => onChanged(_prefsBloc, value)
        )

...

}
SettingTextField(
...
onChanged: (bloc, value) => bloc.dispatch(SomeEventType(value))
...
)
然后调用设置文本字段:

class SettingTextField extends StatelessWidget {
  final String text;
  final String labelText;    
  final Function(PrefsBloc bloc, value) onChanged;

    ...

    TextField(
              inputFormatters: [BlacklistingTextInputFormatter(RegExp("[a-zA-Z]"))],
              decoration: InputDecoration(labelText: this.labelText),
              keyboardType: TextInputType.number,
              controller: _controller,
              onChanged: (value) => onChanged(_prefsBloc, value)
        )

...

}
SettingTextField(
...
onChanged: (bloc, value) => bloc.dispatch(SomeEventType(value))
...
)
SettingTextField(
...
onChanged: (bloc, value) => bloc.dispatch(SomeEventType(value))
...
)