将上下文传递给另一个类

问题描述

我正在提出申请。我创建了一个类,在其中为 ListView 创建数据并将其传递给另一个类进行显示。如何将上下文传递给此类以进行本地化?

data_rules.dart
class DataRules {
  const DataRules({required this.name,required this.description,required this.image});
  final String name;
  final String description;
  final String image;
}
class RulesList{
  final BuildContext context;
  RulesList({required this.context});
  final List<DataRules> rulesList= [
    DataRules(
      name: AppLocalizations.of(context).translate('welcom')!,description: '..',image: 'assets/images/rules1.png',),DataRules(
     name: AppLocalizations.of(context).translate('welcom')!,image: 'assets/images/rules2.png',];
}

form.dart
class Rules extends State<RulesForm>  {
  @override
  Widget build(BuildContext context) {
    final List<DataRules> _rulesList= RulesList(context: context).rulesList;
    return Scaffold(
      body: Stack(
        children: <Widget>[
          SingleChildScrollView(
                child: Column(
                  children: <Widget>[
                    ListView.separated(
                      itemCount: _rulesList.length,

解决方法

您需要在前面添加 wiget.

  name: AppLocalizations.of(widget.context).translate('welcom')!,
,

试试 easy_localization 包

https://pub.dev/packages/easy_localization

使用起来超级简单。