繁体   English   中英

将 function 分配给 Dart/Flutter 中的变量

[英]Assign function to a variable in Dart/Flutter

我正在尝试将function (返回字符串)用于Text小部件。 如果我直接使用 getName() 它工作正常。

但是,如果通过像下面这样的动态变量分配 function,则会引发错误。 我想更新按钮按下的名称。

Text(title, style:kText20White),
Button(
 title: 'Change Name',
 onPressed: (){
   setState((){
     value = 1;
   });
 {
)

dynamic title;
int value = 0;

@override
void initState() {
 super.initState();
 title = getName;
}

String getName(){
 if(name == 0){
   return 'Taarak';
 } else {
   return 'Harshad';
 }

错误: type '() => String' is not a subtype of type 'String'

是否可以通过变量通过 function 分配字符串?

终于明白你想做什么了。

您需要检查标题的变量类型并按类型划分调用。

这是最终解决方案!!!

Text(title is String ? title : title(), style:kText20White),
Button(
 title: 'Change Name',
 onPressed: (){
   setState((){
     value = 1;
   });
 {
)

dynamic title;
int value = 0;

@override
void initState() {
 super.initState();
 title = getName;
}

String getName(){
 if(name == 0){
   return 'Taarak';
 } else {
   return 'Harshad';
 }

您引用的是 function,您必须在那里致电 function

String title;

String getName(){
 return 'First Name';
}

title = getName; //Here you are referencing a function, You have to call function here

Text(title, style:kText20White)

解决方案:

title = getName();

尝试这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM