flutter(dart)构造函数语法问题?

flutter项目中定义了一个类,我的想法是,所有内部属性都定义成下划线开头,然后提供一批同名的,不带下划线的get属性供外部访问,但是我发现构造函数里面的名称必须不带下滑,

我发现,非构造函数里面的属性可以通过这种思路,引用类型(如:_columns)也可以通过这种思路,但是_tableWrapperWidth切不可以,该如何处理?

import 'package:flutter/material.dart';

class GridStateManage with ChangeNotifier {
  final List<String> _columns;

  final int _tableWrapperWidth;
  Color tableBgColor; // 表格背景色

  List<String> get columns => _columns;

  GridStateManage({
    required List<String> columns, //不报错
    this.tableWrapperWidth = 10, // 报错,提示必须定义该属性才能使用
    this.tableBgColor = Colors.white,
  }) : _columns = columns;
}
阅读 248
1 个回答

因为你的this.tableWrapperWidth指的是getter啊,你改为double tableWrapperWidth然后_tableWrapperWidth = tableWrapperWidth就好了。另外宽度应该是double吧,如果参与运算可能会有问题,定义double比较稳妥。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题