Flutter 颤振:在小部件调用中使用参数(图标)

Flutter 颤振:在小部件调用中使用参数(图标),flutter,dart,widget,Flutter,Dart,Widget,我是个新手。为了创建登录按钮,我提取了一个小部件。 我想传递一个参数,该参数指定应该使用的图标,但是我不能在icon小部件的方法调用中添加我的参数。如何管理这一点 错误出现在图标小部件中。 代码: classloginbuttonicon扩展了无状态小部件{ 最终字符串图标名; constLoginButtonicon({Key-Key,@required this.iconName}):super(Key:Key); @凌驾 小部件构建(构建上下文){ 返回上升按钮( onPressed:()

我是个新手。为了创建登录按钮,我提取了一个小部件。 我想传递一个参数,该参数指定应该使用的图标,但是我不能在icon小部件的方法调用中添加我的参数。如何管理这一点

错误出现在图标小部件中。 代码:

classloginbuttonicon扩展了无状态小部件{
最终字符串图标名;
constLoginButtonicon({Key-Key,@required this.iconName}):super(Key:Key);
@凌驾
小部件构建(构建上下文){
返回上升按钮(
onPressed:()=>“已按下”,
孩子:排(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
图标(
Icons.iconName,
颜色:颜色,白色,
),
大小盒子(
宽度:15,
),
文本(“RaisedButton”,
样式:TextStyle(颜色:Colors.white,fontSize:14)),
],
),
颜色:颜色。黑色54);
}
}

图标名类型不应为字符串,它应为IconData,并且您应该像这样传递完整的图标。添加图标名类型不应为字符串,它应该是IconData,你应该像这样传递完整的图标图标。添加

你走对了。现在声明一个返回图标小部件的函数。在函数中,使用开关案例,根据作为参数传递的字符串返回不同的图标

Icon _getCorrectIcon() {
    switch (iconName) {
      case 'name-a':
        return Icon(Icons.a);
      case 'name-b':
        return Icon(Icons.b);
      case 'name-c':
        return Icon(Icons.c);
      default:
        return Icon(Icons.a);
    }
  }
将行替换为:

Row(
      mainAxisAlignment: MainAxisAlignment.start,
      children: <Widget>[
        _getCorrectIcon(),
        SizedBox(
          width: 15,
        ),
        Text("RaisedButton",
            style: TextStyle(color: Colors.white, fontSize: 14)),
      ],
    ),
行(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
_getCorrectIcon(),
大小盒子(
宽度:15,
),
文本(“RaisedButton”,
样式:TextStyle(颜色:Colors.white,fontSize:14)),
],
),

你走对了路。现在声明一个返回图标小部件的函数。在函数中,使用开关案例,根据作为参数传递的字符串返回不同的图标

Icon _getCorrectIcon() {
    switch (iconName) {
      case 'name-a':
        return Icon(Icons.a);
      case 'name-b':
        return Icon(Icons.b);
      case 'name-c':
        return Icon(Icons.c);
      default:
        return Icon(Icons.a);
    }
  }
将行替换为:

Row(
      mainAxisAlignment: MainAxisAlignment.start,
      children: <Widget>[
        _getCorrectIcon(),
        SizedBox(
          width: 15,
        ),
        Text("RaisedButton",
            style: TextStyle(color: Colors.white, fontSize: 14)),
      ],
    ),
行(
mainAxisAlignment:mainAxisAlignment.start,
儿童:[
_getCorrectIcon(),
大小盒子(
宽度:15,
),
文本(“RaisedButton”,
样式:TextStyle(颜色:Colors.white,fontSize:14)),
],
),