Flutter:将 AppLocalizations.of(context)!.actionaid 传递到 webview 的 initalUrl

Flutter: Passing AppLocalizations.of(context)!.actionaid into initalUrl of a webview

我目前正在本地化我的应用程序,我已经翻译了所有要打开的网页并将 url 添加到我的 arb 文件中。

但是当我在 initialUrl 上调用 AppLocalizations.of(context)!.actionaid 时,我得到一条红色下划线,上面写着 Invalid constant value

我有什么方法可以使它工作吗?

谢谢大家

我有这样的东西:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

class actionAid extends StatelessWidget {
 const actionAid({Key? key}) : super(key: key);

  @override
Widget build(BuildContext context) {
return const CupertinoPageScaffold(
  navigationBar: CupertinoNavigationBar(middle: Text("Action Aid")),
  child: SafeArea(
    child: WebView(
      initialUrl:  AppLocalizations.of(context)!.actionaid,
      javascriptMode: JavascriptMode.unrestricted,
    ),
    //bottomNavigationBar: CustomBottomNavBar(selectedMenu: MenuState.give),
  ),
);
}}

问题是您通过编写 const CupertinoPageScaffold.

将 Widget 树定义为仅包含常量值

由于 AppLocalization.of(context).actionaid 未提供常量值,因此违反了此​​“规则”并触发了错误。

const CupertinoPageScaffold 更改为仅 CupertinoPageScaffold 或将 WebView 小部件提取到具有 const 构造函数的单独小部件中应该可以解决问题。