dart - 在初始化程序中只能访问静态成员。 Dart2.0

我在有状态小部件中使用银行列表。将名单传递给 pageState使用 List<Bank> bankLists = this.widget.bankLists;

Que 1. 为什么我在 gradientcolor: gradientBankCard("FFB74093","FFB74093")) 处出现错误初始化器中只能访问静态成员?

二问。如何将 const 数据传递给 gradientBankCard方法 。例如我想通过 Color.fromRGBO(220, 132, 58, 1.0)给错误的参数。 我

List<Bank> bankLists = [
 Bank(
    id: "1",
    name: "B1",
    loanAmount: "₹ 250000",
    emi: "₹11732",
    intrest_rate: "11.69 % ",
    processing_fee: "1.29 %",
    tenure: "2 years",
    gradientcolor: gradientBankCard('#e48634', '#e48634')), // //Error : Only static members can be accessed in initializers
 Bank(
    id: "2",
    name: "B2",
    loanAmount: "₹ 250000",
    emi: "₹11732",
    intrest_rate: "11.69 % ",
    processing_fee: "1.29 %",
    tenure: "2 years",
    gradientcolor: gradientBankCard('#e48634', '#e48634')) //Error : Only static members can be accessed in initializers
];

现在我在我的列表屏幕中使用。

LinearGradient gradientBankCard(String startColor, String  endColor){

return LinearGradient(
    begin: Alignment.topLeft,
    end: Alignment.bottomRight,
    colors: [Color(hexToInt(startColor)),Color(hexToInt(endColor))]
);
}

银行模型.dart

import 'package:flutter/material.dart';



class Bank {
  final String id;
  final String name;
  final String loanAmount;
  final String emi;
  final String intrest_rate;
  final String processing_fee;
  final String tenure;
  LinearGradient gradientcolor;

  Bank({this.id, this.name, this.loanAmount, this.emi, this.intrest_rate,
      this.processing_fee, this.tenure,this.gradientcolor});

}

最佳答案

代码

gradientcolor: gradientBankCard('#e48634', '#e48634')),

在类完全初始化之前执行。 像

这样的字段的初始化器
List<Bank> bankLists = [...];

在 super 构造函数执行之前执行,此时不允许显式或隐式访问 this.,因为它会允许访问未完全初始化的状态。

如果你改变了

LinearGradient gradientBankCard(String startColor, String  endColor){ ...

static LinearGradient gradientBankCard(String startColor, String  endColor){

那么没有办法访问this.,因此是安全的。

https://stackoverflow.com/questions/51873003/

相关文章:

dart - Flutter:创建时间线 UI

flutter - 加载数据时制作骨架屏幕的最简单方法

dart - Flutter 小部件测试 : StreamBuilder snapshot has

flutter - 内置值对象的 setter 是什么

firebase - Flutter - firebase_auth updateProfile 方

flutter - Sizedbox 与填充列和行中的距离

dart - 在 Flutter 中从文件中读取二维码

dart - 我可以在未来的构建器上使用多种方法吗?

dart - Dart 中的类型定义

java - flutter 中是否有任何类可以像处理程序一样工作?