Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 关于颤振多供应商的应用_Flutter_Flutter Provider - Fatal编程技术网

Flutter 关于颤振多供应商的应用

Flutter 关于颤振多供应商的应用,flutter,flutter-provider,Flutter,Flutter Provider,屏幕上的结果是333,如果我想显示222,如何获得第二个模型? 有没有办法实现这一点,比如通过索引 我的项目中真正的问题是:我有一个页面,它由一系列组件组成,如横幅、旋转木马、音频播放器等。它们的顺序和数量是任意的,由json配置,如: import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; void main() { runApp(App()); } class Model ex

屏幕上的结果是333,如果我想显示222,如何获得第二个模型? 有没有办法实现这一点,比如通过索引


我的项目中真正的问题是:我有一个页面,它由一系列组件组成,如横幅、旋转木马、音频播放器等。它们的顺序和数量是任意的,由json配置,如:

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

void main() {
  runApp(App());
}

class Model extends ChangeNotifier {
  String id;

  Model({this.id});
}

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var model1 = Model(id: '111');
    var model2 = Model(id: '222');
    var model3 = Model(id: '333');

    return MaterialApp(
        home: Scaffold(
      backgroundColor: Colors.white,
      body: MultiProvider(
        providers: [
          ChangeNotifierProvider.value(value: model1),
          ChangeNotifierProvider.value(value: model2),
          ChangeNotifierProvider.value(value: model3),
        ],
        child: Center(child: Foo()),
      ),
    ));
  }
}

class Foo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Consumer(
      builder: (ctx, Model model, child) {
        return Text(model.id);
      },
    );
  }
}

我要做的是遍历json,然后创建整个模型。 ComponentAModel,ComponentBModel,ComponentAModel。 然后我将所有这些都放入多提供商中

现在我有两个组件A要渲染,但我无法区分第一个组件A模型和

第二个组件模型。

不能使用提供程序提供同一类型的多个模型

试试看

{
  "settings": [
    {
      "type": "ComponentA",
      "data": "..."
    },
    {
      "type": "ComponentB",
      "data": "..."
    },
    {
      "type": "ComponentA",
      "data": "..."
    }
  ]
}