我需要将字符串从一个类传递到另一个类,但出现错误。
这是我想要从中传递参数的类的代码:
onTap: () {
String titleCompanyId = snapshot.data?.docs[index].id;
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) =>
const TitleCompanyScreen(false, snapshot.data?.docs[index].id),
),
);
},
Run Code Online (Sandbox Code Playgroud)
错误出现在我传递的第二个参数上(snapshot.data?.docs[index].id),这是错误:
无效的常量值。
该参数是来自 Cloud Firestore 的文档 ID。
这是我接收参数的代码:
class TitleCompanyScreen extends ConsumerStatefulWidget {
const TitleCompanyScreen([
this.isNewTitleCompany,
this.titleCompanyId,
Key? key,
]) : super(key: key);
final bool? isNewTitleCompany;
final String? titleCompanyId;
@override
ConsumerState<TitleCompanyScreen> createState() => _TitleCompanyScreenState();
}
Run Code Online (Sandbox Code Playgroud)
我如何传递这个参数?谢谢
更新:
这是我在第一个答案之后得到的。
onTap: () {
String? titleCompanyId = snapshot.data?.docs[index].id;
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) =>
const TitleCompanyScreen(false, titleCompanyId),
),
);
},
Run Code Online (Sandbox Code Playgroud)
现在,我在 titleCompanyId 参数上收到此错误:
Arguments of a constant creation must be constant expressions.
Try making the argument a valid constant, or use 'new' to call the constructor.
Run Code Online (Sandbox Code Playgroud)
您应该const从 中删除关键字MaterialPageRoute并直接传递参数,而不是将它们包装在常量构造函数中。
onTap: () {
String titleCompanyId = snapshot.data?.docs[index].id;
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => TitleCompanyScreen(false, titleCompanyId),
),
);
},
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |