flutter 块事件未接收数据?

hlswsv35  于 2022-12-05  发布在  Flutter
关注(0)|答案(2)|浏览(189)

我目前有问题,我的第一个块从0,它应该抛出一个错误,一旦一个数字达到一定的数字,但我注意到,通过测试,该事件是没有收到任何数据在所有,我不知道我做错了什么。
我可以确认事件正在被触发,在更改文本字段时触发事件。
我不知道这是否重要,但如果尝试int.parse它,我会收到null。
带有应发送到事件的字符串的小部件。

class Daytextfield extends StatelessWidget {
  Daytextfield({
    Key? key,
    required this.digits,
    required this.hint,
  }) : super(key: key);

  final int digits;
  final String hint;
  final String texto = '';
  

  @override
  Widget build(BuildContext context) {
    
    final TextEditingController dias = TextEditingController(text: texto);
    Color color = Colors.black;
    

    return BlocConsumer<DaysBloc, DaysState>(
      listener: (context, state) {
        if(state is DaysIncorrectState){
          color = Colors.red;
        } else if (state is DaysCorrectState){
          color = Colors.green;
        }
      },
      builder: (context, state) {
        return TextFormField(
          onChanged: (value) {
            
            BlocProvider.of<DaysBloc>(context).add(DaysChangedEvent(texto: texto));
           print(state);
          //  var ree = int.tryParse(texto);
           print(texto);
          },
          controller: dias,
          keyboardType: TextInputType.number,
          textInputAction: TextInputAction.next,
          textAlign: TextAlign.center,
          cursorColor: Color.fromARGB(148, 66, 63, 63),
          style: Theme.of(context)
              .textTheme
              .headline1!
              .copyWith(fontSize: 20, color: color),


第一个

ecfsfe2w

ecfsfe2w1#

替换
BlocProvider.of<DaysBloc>(context).add(DaysChangedEvent(texto: texto));

BlocProvider.of<DaysBloc>(context).add(DaysChangedEvent(texto: value));
texto是最终的空字符串,因此您可能每次都将空字符串作为事件接收。

j8ag8udp

j8ag8udp2#

在这一行

BlocProvider.of<DaysBloc>(context).add(DaysChangedEvent(texto: texto));

(texto:texto)替换为(texto:value)
看起来像这样

BlocProvider.of<DaysBloc>(context).add(DaysChangedEvent(texto: value));

这样应该可以了。

相关问题