小编Zou*_*lou的帖子

如何检查reflect.Value是否为零?

我有这个代码:

package main

import (
    "fmt"
    "reflect"
)


type cmd struct{
    Echo func(string) (string,error)
}



func main() {
    cmd := cmd{
        Echo : func(arg string) (string, error) {
            return arg, nil
        },
    }
    result := reflect.ValueOf(cmd).FieldByName("Echo").Call([]reflect.Value{reflect.ValueOf("test")})
    if result[1] == nil{
        fmt.Println("ok")
    }
}
Run Code Online (Sandbox Code Playgroud)

我想检查我的错误是否为零,但在我的代码中,它不起作用,因为它有不同的类型。我试着做这样的:

reflect[1] == reflect.Value(reflect.ValueOf(nil))
Run Code Online (Sandbox Code Playgroud)

所以它具有相同的类型,但 的值reflect.Value(reflect.ValueOf(nil))不是 nil,而是<invalid reflect.Value>

null go reflect

0
推荐指数
1
解决办法
1065
查看次数

Flutter 错误:在此 BlocBuilder&lt;StateStreamable&lt;Object?&gt; 上方找不到正确的 Provider&lt;StateStreamable&lt;Object?&gt;&gt;

我正在尝试实现一个用于在页面之间进行导航的 Cubit。我的第一次尝试是在我的背景屏幕上实现它,但在尝试执行此操作时出现此错误:

“错误:在此 BlocBuilder<StateStreamable<Object?>, Object?> Widget 上方找不到正确的 Provider<StateStreamable<Object?>>”

我不明白为什么它找不到正确的上下文,因为我的 BlocBuilder 位于小部件树中的 BlocProvider 之上......

这是代码:

import 'package:connectivity_plus/connectivity_plus.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:flexmes_mobile_app/buisness_logic/cubit/internet_cubit.dart';
import 'package:flexmes_mobile_app/buisness_logic/utility/app_bloc_observer.dart';
import 'package:flexmes_mobile_app/config/themes.dart';
import 'package:flexmes_mobile_app/ui/screens/auth_screen.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:responsive_sizer/responsive_sizer.dart';
import 'buisness_logic/cubit/navigation_cubit.dart';
import 'config/app_router.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  Firebase.initializeApp();
  BlocOverrides.runZoned(
        () => runApp(MyApp()),
    blocObserver: AppBlocObserver(),
  );
}

class MyApp extends StatelessWidget {
  final AppRouter _appRouter = AppRouter();

  MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MediaQuery(
      data: const MediaQueryData(),
      child: ResponsiveSizer(
          builder: (context, orientation, deviceType) …
Run Code Online (Sandbox Code Playgroud)

builder flutter flutter-bloc cubit

0
推荐指数
1
解决办法
2826
查看次数

标签 统计

builder ×1

cubit ×1

flutter ×1

flutter-bloc ×1

go ×1

null ×1

reflect ×1