【问题标题】:Flutter: Autocomplete suggestions shows 'instance of object' instead of nameFlutter:自动完成建议显示“对象实例”而不是名称
【发布时间】:2021-07-16 22:06:29
【问题描述】:

我正在使用自动完成小部件可用的颤振显示建议列表,但它显示 instance of 'LOTOEmployee' 而不是员工的姓名。

员工列表的存储位置,

List<LOTOEmployee> employees = [];

自动完成小部件的代码,

Autocomplete<LOTOEmployee>(
                           optionsBuilder: (value) {
                                  return employee
                                       .where((e) => e.label.contains(value.text));
                                  },
                              ),

显示的内容

谁能告诉我如何解决它

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    为什么会这样?

    默认情况下,来自toString 方法的 dart 输出“Instance of”中的一个类。

    我该如何解决这个问题?

    覆盖LOTOEmployee 类的toString 方法并返回您需要的输出值。

    例如:

    class LOTOEmployee {
        String name;
        @override
        String toString() {
            return name;
        }
    }
    

    【讨论】:

    • 这就像一个魅力非常感谢您的快速解决方案
    • 如果此答案对您有所帮助,请考虑将其标记为已接受的答案。所以我们可以在 StackOverflow 上帮助其他人解决同样的问题
    【解决方案2】:

    有一个更好的解决方案可以做到这一点。 自动完成还有另一个参数叫做“displayStringForOption”,它接收选项并输出一个字符串。

    return Autocomplete(
          optionsBuilder: (value) { ... },
          displayStringForOption: (employee) => employee.label,
        );
    

    【讨论】:

      猜你喜欢
      • 2016-09-22
      • 2018-04-27
      • 2018-09-16
      • 1970-01-01
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多