Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振:从无状态小部件到带MaterialPage路由的有状态小部件_Flutter_Dart - Fatal编程技术网

Flutter 颤振:从无状态小部件到带MaterialPage路由的有状态小部件

Flutter 颤振:从无状态小部件到带MaterialPage路由的有状态小部件,flutter,dart,Flutter,Dart,我有一个作为无状态小部件的详细页面。我的Feed.dart中有一个列表视图。单击Listview元素,即可进入详细信息页面。现在我想在有状态中转换无状态的细节,但是在我的feed MaterialPageRoute中,现在的错误是没有定义命名参数shop。如何修复错误 无状态细节 class Detail extends StatelessWidget { final Shop shop; Detail({ this.shop }); var top = 0.0;

我有一个作为
无状态小部件的详细页面
。我的Feed.dart中有一个
列表视图
。单击Listview元素,即可进入详细信息页面。现在我想在有状态中转换无状态的细节,但是在我的feed MaterialPageRoute中,现在的错误是没有定义命名参数shop。如何修复错误

无状态细节

    class Detail extends StatelessWidget {

  final Shop shop;
  Detail({ this.shop });

  var top = 0.0;

  int segmentedControlGroupValue = 0;
  final Map<int, Widget> myTabs = const <int, Widget>{
    0: Text("Item 1"),
    1: Text("Item 2")
  };

它说第一家商店不再有详细的定义。因此有一个错误。当它是一个无状态的小部件时,它仍然可以工作。你能告诉我错误在哪里吗?

你应该把构造函数放在
细节
类而不是
\u细节状态

class Detail extends StatefulWidget {
  final Shop shop;
  Detail({ this.shop });

   @override
  _DetailState createState() => _DetailState(Shop());
}


class _DetailState extends State<Detail> {

  var top = 0.0;
  Shop shopValue; 

  @override
  void initState() {
    super.initState();
    // access the property 'shop' using 'widget.shop' 
    shopValue = widget.shop
  }
}
类详细信息扩展StatefulWidget{
最终车间;
细节({this.shop});
@凌驾
_DetailState createState()=>\u DetailState(Shop());
}
类_DetailState扩展了状态{
var-top=0.0;
商店购物价值;
@凌驾
void initState(){
super.initState();
//使用“widget.shop”访问属性“shop”
shopValue=widget.shop
}
}

您应该将构造函数放在
详细信息
类中而不是
\u DetailState

class Detail extends StatefulWidget {
  final Shop shop;
  Detail({ this.shop });

   @override
  _DetailState createState() => _DetailState(Shop());
}


class _DetailState extends State<Detail> {

  var top = 0.0;
  Shop shopValue; 

  @override
  void initState() {
    super.initState();
    // access the property 'shop' using 'widget.shop' 
    shopValue = widget.shop
  }
}
类详细信息扩展StatefulWidget{
最终车间;
细节({this.shop});
@凌驾
_DetailState createState()=>\u DetailState(Shop());
}
类_DetailState扩展了状态{
var-top=0.0;
商店购物价值;
@凌驾
void initState(){
super.initState();
//使用“widget.shop”访问属性“shop”
shopValue=widget.shop
}
}

阿肖克的解决方案是正确的。在您的提要需要上,onTap需要更改

onTap: () {
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => Detail(shop: widget[index])),
    );
  },

阿肖克的解决方案是正确的。在您的提要需要上,onTap需要更改

onTap: () {
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => Detail(shop: widget[index])),
    );
  },

我不能那样改变它。widget.shop出现此错误:在初始值设定项中只能访问静态成员。以及在州内的商店(Shop());获取此错误->位置参数过多:应为0,但找到1。试着删除额外的参数。我不能这样改变它。widget.shop出现此错误:在初始值设定项中只能访问静态成员。以及在州内的商店(Shop());获取此错误->位置参数过多:应为0,但找到1。尝试删除额外的参数。