簡體   English   中英

顫振塊; 預期有 1 個位置參數,但找到 0 個

[英]Flutter Bloc; 1 positional argument(s) expected, but 0 found

顫振版本:2.1.0

顫振塊版本:^7.0.1

飛鏢:2.13.0

收到此錯誤:預期有 1 個位置參數,但找到 0 個。 嘗試添加缺少的 arguments.dart(not_enough_positional_arguments)。

有什么我錯的嗎

在此處輸入圖片說明

我的側邊欄布局發生錯誤的地方:

 body: BlocProvider<NavigationBloc>(
        create: (context) => NavigationBloc(),
        child: Stack(
          children: [
            BlocBuilder<NavigationBloc, NavigationStates>(
                builder: (context, NavigationState) {
              return NavigationState as Widget;
            }),
            SideBar(),
          ],
        ),
      ),

我的集團導航文件:


import '/Pages/DeviceLocation/DeviceLocation.dart';

import '/Pages/Devices/DeviceLanding.dart';

import '../../LandingScreen/components/body.dart';
import '../../SensorScreen/charts/GasChart.dart';
import '../../SensorScreen/charts/HumChart.dart';
import '../../SensorScreen/charts/MoisChart.dart';
import '../../SensorScreen/charts/NurChart.dart';
import '../../SensorScreen/charts/PhChart.dart';
import '../../SensorScreen/charts/TemChart.dart';
import '../../SensorScreen/charts/chartComponents/NurCard.dart';
import 'package:bloc/bloc.dart';

enum NavigationEvents {
  // DashboardClickEvent,
  LandingScreenBodyClickEvent,
  TemChartClickEvent,
  HumChartClickEvent,
  MoisChartClickEvent,
  PhChartClickEvent,
  NurChartClickEvent,
  GasChartClickEvent,
  DevicesClickEvent,
  DevicesLocationClickEvent,
  AccountClickEvent,
  SettingsClickEvent
}

abstract class NavigationStates {}

class NavigationBloc extends Bloc<NavigationEvents, NavigationStates> {
  NavigationBloc(NavigationStates initialState) : super(initialState);

  @override
  NavigationStates get initialState => LandingScreenBody();

  @override
  Stream<NavigationStates> mapEventToState(NavigationEvents event) async* {
    switch (event) {
      case NavigationEvents.LandingScreenBodyClickEvent:
        yield LandingScreenBody();
        break;
      case NavigationEvents.TemChartClickEvent:
        yield TemChart();
        break;
      case NavigationEvents.HumChartClickEvent:
        yield HumChart();
        break;
      case NavigationEvents.MoisChartClickEvent:
        yield MoisChart();
        break;
      case NavigationEvents.PhChartClickEvent:
        yield PhChart();
        break;
      case NavigationEvents.NurChartClickEvent:
        yield NurChart();
        break;
      case NavigationEvents.GasChartClickEvent:
        yield GasChart();
        break;
      case NavigationEvents.DevicesClickEvent:
        yield DeviceLanding();
        break;
      case NavigationEvents.DevicesLocationClickEvent:
        yield DevicesLocation();
        break;
    }
  }
}

我在做什么?

您不必將狀態傳遞給 bloc 構造函數,這應該可以工作


NavigationBloc() : super(LandingScreenBody());

並且在 flutter_bloc 7.0.0 中,不再有initialState getter,因此您也必須將其刪除

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM