如何解决"在初始值设定项中只能访问静态成员"错误



尝试将id传递给静态函数fetchByid

请无法访问最终的id值,有办法访问该值吗,这是代码请无法访问最终的id值,有办法访问该值吗,这是代码`

import 'package:flutter/material.dart';
import 'package:learning_system/models/restaurant.dart';
import '../../models/restaurant_page_header.dart';
class RestaurantScreen extends StatefulWidget {
final int id;
RestaurantScreen(this.id);
// Restaurant rest = Restaurant.fetchById(id);
@override
_RestaurantScreenState createState() => _RestaurantScreenState();
}
class _RestaurantScreenState extends State<RestaurantScreen> {
Restaurant rest = Restaurant.fetchById(widget.id);
@override
Widget build(BuildContext context) {
return Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverPersistentHeader(
pinned: true,
delegate: RestaurantPageHeader(
maxExtent: 270.0, minExtent: 85.0, rest: rest),
),
SliverList(
delegate: SliverChildBuilderDelegate(
(context, index) => ListTile(

title: Text(rest.menu[index].foodName),
subtitle: Text(rest.menu[index].supliments),
trailing: Image.asset(rest.restImageUrl)
),
childCount: rest.menu.length
),
)
],
),
);
}
}

`

您可以在initState()中执行rest = Restaurant.fetchBy(widget.id);
代码片段

class RestaurantScreen extends StatefulWidget {
final int id;
RestaurantScreen(this.id);
@override
_RestaurantScreenState createState() => _RestaurantScreenState();
}
class _RestaurantScreenState extends State<RestaurantScreen> {
Restaurant rest;
@override
void initState() {
rest = Restaurant.fetchBy(widget.id);
super.initState();
}

最新更新