如何从颤振步进器中的子小部件获取文本输入?

时间:2021-06-23 10:03:45

标签: flutter

如何从 Stepper 中的子小部件正确获取文本输入?我想在触发 onStepContinue 时运行 bloc 事件。我会使用 ChangeNotifier 吗?我不想使用 globalkeys 因为它不推荐对吗?

ApplicationPage.dart

 class _ApplicationFormWidgetState extends State<ApplicationFormWidget> {
      int _currentStep = 0;
    
      List<Step> _mySteps = [
        Step(
            title: Text('Personal Information'),
            isActive: true,
            content: PersonalInfo()),
        Step(
            title: Text('Business Information'),
            isActive: true,
            content: BusinessInfo()),
      ];
    
      @override
      Widget build(BuildContext context) {
        return Stepper(
            physics: ClampingScrollPhysics(),
            steps: _mySteps,
            currentStep: this._currentStep,
            onStepContinue: () {
              setState(() {
                BlocProvider.of<ApplicationBloc>(context)
                    .add(CreatePersonalInfoEvent(
                  firstName: _firstName.text,
                  lastName: _lastname.text,
                  ........
                ));
              });
            },
            
);
      }
    }

个人信息.dart

class PersonalInfo extends StatefulWidget {
  const PersonalInfo({Key key}) : super(key: key);

  @override
  _PersonalInfoState createState() => _PersonalInfoState();
}

class _PersonalInfoState extends State<PersonalInfo> {
  var _firstName = TextEditingController();
  var _lastName = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Column(
      children: [
        TextFieldTemplate(
          labelText: 'First Name',
          controller: _firstName,
          validationType: ValidationType.notNull,
        ),
        TextFieldTemplate(
          labelText: 'Last Name',
          controller: _lastName,
          validationType: ValidationType.notNull,
        ),
        
      ],
    );
  }   

0 个答案:

没有答案