首页 > 解决方案 > Flutter Key类型如何根据类型使key成为必需的?

问题描述

我在需要颤振键方面遇到了一些问题,因为我想创建一个自定义小部件,该小部件具有基于类型所需的键我该怎么做?

class CustomTextField extends StatefulWidget {
  CustomTextField(
      {Key? key,
      this.label = "",
      required this.type,
      required this.labelText,
      required this.hintText,
      required this.validationText,
      type = "password" ? required this.validField : this.validField = "",
      this.helpTxt = ""})
      : super(key: key);

  final String label;

  final String labelText;

  final String hintText;

  final String validationText;

  final String validField;

  final String helpTxt;

  final String type;

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

标签: flutter

解决方案


您可以使用ValueKey在作为参数传递的值上生成不同的键。对于您的情况,您可以提供以下内容:-

class CustomTextField extends StatefulWidget {
  CustomTextField(
      {Key? key,
      this.label = "",
      required this.type,
      required this.labelText,
      required this.hintText,
      required this.validationText,
      type = "password" ? required this.validField : this.validField = "",
      this.helpTxt = ""})
      : super(key: ValueKey(this.type));

  final String label;

  final String labelText;

  final String hintText;

  final String validationText;

  final String validField;

  final String helpTxt;

  final String type;

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

推荐阅读