我現在正在做一個顫振專案,這是第一次在顫振上作業。
我有一個名為“card_city.dart”的可重用自定義小部件,并使用以下代碼將其用于名為“city.dart”的其他小部件:
CardCity('Manila', 'assets/images/manila.jpg', Get.to(() => const Manila());)
無論如何,我正在使用 GetX Page Route 代碼: Get.to(() => const Manila());
我收到此錯誤:
- 常量創建的引數必須是常量運算式。嘗試使引數成為有效的常量,或使用“new”來呼叫建構式。
- 在 const 建構式中,不能將“Null”型別的值分配給“void Function()”型別的引數。嘗試使用子型別,或洗掉關鍵字“const”。
- 預計會找到')'。
card_city.dart:
import 'package:flutter/material.dart';
import 'package:sample/component/colors.dart';
import 'package:sample/component/styles.dart';
class CardCity extends StatelessWidget {
final String _cityTitle;
final String _cityAssetImage;
final VoidCallback _onTap;
const CardCity(this._cityTitle, this._cityAssetImage, this._onTap, {Key? key})
: super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: 150.0,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(_cityAssetImage),
fit: BoxFit.cover,
colorFilter:
const ColorFilter.mode(Color(0x400B7A77), BlendMode.srcOver),
),
borderRadius: BorderRadius.circular(15)),
child: Material(
color: Colors.transparent,
child: InkWell(
onTap: () {
_onTap;
},
borderRadius: BorderRadius.circular(15.0),
splashColor: BrandColor.color.transNeon,
child: Center(
child: Text(
_cityTitle.toUpperCase(),
style: mainTitleBarabaraWhite,
),
),
),
),
);
}
}
固定的:
card_city.dart:
import 'package:flutter/material.dart';
import 'package:sample/component/colors.dart';
import 'package:sample/component/styles.dart';
class CardCity extends StatelessWidget {
final String _cityTitle;
final String _cityAssetImage;
final VoidCallback _onTap;
const CardCity(this._cityTitle, this._cityAssetImage, this._onTap, {Key? key})
: super(key: key);
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: 150.0,
decoration: BoxDecoration(
image: DecorationImage(
image: AssetImage(_cityAssetImage),
fit: BoxFit.cover,
colorFilter:
const ColorFilter.mode(Color(0x400B7A77), BlendMode.srcOver),
),
borderRadius: BorderRadius.circular(15)),
child: Material(
color: Colors.transparent,
child: InkWell(
onTap: _onTap;,
borderRadius: BorderRadius.circular(15.0),
splashColor: BrandColor.color.transNeon,
child: Center(
child: Text(
_cityTitle.toUpperCase(),
style: mainTitleBarabaraWhite,
),
),
),
),
);
}
}
uj5u.com熱心網友回復:
試試這個方法
CardCity(
'Manila',
'assets/images/manila.jpg',
(){
Get.to(() => const Manila());
})
并在CardCity更改InkWell點擊喜歡
child: InkWell(
onTap: () {
_onTap();
},
或者
child: InkWell(onTap: _onTap,..
另外,在這種情況下,我更喜歡命名建構式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/362910.html
