我在有状态小部件中使用银行列表。将名单传递给 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/