我一直在学习教程,由于flutter当前版本中的null安全性,我无法返回任何空值,但需要动态返回自定义页面设计
import 'package:flutter/material.dart';
class BasePage extends StatefulWidget {
const BasePage({super.key});
@override
State<BasePage> createState() => BasePageState();
}
class BasePageState<T extends BasePage> extends State<T> {
bool isApiCallProcess = false;
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: PreferredSize(preferredSize: const Size.fromHeight(70.0), child: _buildAppBAr()),
body: ProgressHUD(
inAsyncCall: isApiCallProcess,
opacity: 0.3,
child: pageUI(),
),
);
}
}
Widget pageUI() {
return null;
}
Widget _buildAppBAr() {
return AppBar(
centerTitle: true,
elevation: 0,
backgroundColor: Colors.yellow[800],
automaticallyImplyLeading: false,
title: const Text(
'Kem-D Batteries',
style: TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontSize: 20),
),
actions: const [
Icon(
Icons.notifications_none,
color: Colors.white,
),
SizedBox(
width: 10,
),
Icon(
Icons.shopping_cart,
color: Colors.white,
),
SizedBox(
width: 10,
),
],
);
}
在
Widget pageUI() {
return null;
}
当我将小部件置空时,由于子小部件中的pageUI()
无法分配给非空小部件,因此出现运行时错误。
我厌倦了pageUI()!
不起作用,就像
Widget pageUI() {
return null!;
}
也不起作用。任何帮助将不胜感激。
我厌倦了pageUI()!
不工作,就像
Widget pageUI() {
return null!;
}
也不管用。
我想显示与其唯一ID相关的产品,下面的代码用于按ID显示类别
import 'package:flutter/material.dart';
import 'base_page.dart';
class ProductPage extends BasePage {
const ProductPage({Key? key, required this.catgeoryId}) : super(key: key);
final int catgeoryId;
@override
// ignore: library_private_types_in_public_api
_ProductPageState createState() => _ProductPageState();
}
class _ProductPageState extends BasePageState<ProductPage> {
@override
Widget pageUI() {
return Container(
child: Text(
widget.catgeoryId.toString(),
),
);
}
}
3条答案
按热度按时间scyqe7ek1#
有两个改动要做。
调用时使用
??
运算符deyfvvtc2#
使用运算符
?
使函数的返回类型可为null,这样就可以返回null。hc2pp10m3#
你可以回来