Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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 如何将bloc添加到无状态窗口小部件屏幕_Flutter_Dart_Bloc - Fatal编程技术网

Flutter 如何将bloc添加到无状态窗口小部件屏幕

Flutter 如何将bloc添加到无状态窗口小部件屏幕,flutter,dart,bloc,Flutter,Dart,Bloc,我有这样一个屏幕: class SettingsScreen extends StatefulWidget { @override _SettingsScreenState createState() => _SettingsScreenState(); } class _SettingsScreenState() extends State<SettingsScreen> with TickerProviderStateMixin { ... l

我有这样一个屏幕:

class SettingsScreen extends StatefulWidget {
   @override
   _SettingsScreenState createState() => _SettingsScreenState();
}

class _SettingsScreenState() extends State<SettingsScreen> with TickerProviderStateMixin {
    ...
    listViews.add(
        UserView(

        );
    );
}
如何设置我的
UserBloc
来控制上面的小部件?我将此用于bloc。

void main(){
runApp(App());
}
类应用程序扩展了无状态小部件{
@凌驾
小部件构建(构建上下文){
返回材料PP(
标题:“颤振演示”,
首页:BlocProvider(
创建:()=>UserBloc(),
子项:设置屏幕(),
),
);;
}
}
类设置屏幕扩展无状态小部件{
@凌驾
小部件构建(构建上下文){
返回脚手架(
body:BlocBuilder(
生成器:(用户,用户状态){
返回文本(
“新事件和新状态”,
),
);
},
)
}

即使我的设置屏幕不是应用程序的第一个屏幕,我也应该这样做?我有一个主屏幕。@J_Strauton我认为这会帮助你。这不会编译。它应该是
class UserBloc extends Bloc<UserEvent, UserState> {
    final UserRepo userRepo;
    UserBloc({@required this.userRepo}) : assert(userRepo != null);
}
void main() {
runApp(App());
}
class App extends StatelessWidget {
 @override
Widget build(BuildContext context) {
  return  MaterialApp(
        title: 'Flutter Demo',
        home: BlocProvider(
          create: (_) => UserBloc(),
          child: SettingsScreen(),
        ),
      );;
  }
}

class SettingsScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
  return Scaffold(
  body: BlocBuilder< UserBloc, UserState>(
    builder: (user, userState) {
      return Text(
          'new event and new state',
        ),
      );
    },
  )
}