相关疑难解决方法(0)

如何处理不需要的小部件构建?

由于各种原因,有时会build再次调用我的小部件的方法.

我知道这是因为父母更新了.但这会导致不良影响.导致问题的典型情况是使用FutureBuilder这种方式:

@override
Widget build(BuildContext context) {
  return FutureBuilder(
    future: httpCall(),
    builder: (context, snapshot) {
      // create some layout here
    },
  );
}
Run Code Online (Sandbox Code Playgroud)

在此示例中,如果再次调用构建方法,则会触发另一个http请求.这是不受欢迎的.

考虑到这一点,如何处理不需要的构建?有什么方法可以阻止构建调用?

flutter

77
推荐指数
6
解决办法
1万
查看次数

flutter getx 中对 null 值使用的 Null 检查运算符

Null check operator used on a null value尽管我在代码中找不到任何空值,但我的代码给出了错误。

我不知道哪个屏幕实际上导致了错误,但肯定是这两个屏幕中的一个

  1. 启动画面
import 'dart:async';

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:tajicEasy/ui/auth/landingPage.dart';
import 'mySharedPreferences.dart';
import 'onBoarding_page.dart';

class SplashScreen extends StatefulWidget {
  @override
  _SplashScreenState createState() => _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  @override
  void initState() {
    super.initState();
    loadSplashScreen();
    myAppState();
  }

  bool isFirstTimeOpen = false;

  myAppState() {
    MySharedPreferences.instance
        .getBooleanValue("firstTimeOpen")
        .then((value) => setState(() {
              isFirstTimeOpen = value;
            }));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      body: Center(
        child: Image.asset(
          "assets/images/logo.png",
          width: double.infinity, …
Run Code Online (Sandbox Code Playgroud)

get nullpointerexception nul flutter flutter-getx

4
推荐指数
1
解决办法
1万
查看次数

Flutter/Firebase 项目 - “未处理的异常:在空值上使用空检查运算符”是否会导致黑屏?

我正在使用 firebase 开发一个 flutter 项目。我目前正在 MacBook 上进行开发,使用模拟的 iPhone(以防万一这是相关的)。我能够运行我的应用程序,但这样做时,它只是一个永远不会消失的白色空白屏幕,了解这种情况在 Chrome 和模拟 Android 设备上发生也可能是相关的。查看窗口run,我可以看到出现以下错误:

\n
Launching lib/main.dart on iPhone 13 in debug mode...\nRunning Xcode build...\nXcode build done.                                           28.4s\nDebug service listening on ws://127.0.0.1:61474/fF4XR-ozS5s=/ws\nSyncing files to device iPhone 13...\n[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: Null check operator used on a null value\n#0      MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:121:86)\n#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:146:36)\n#2      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:329:12)\n#3      MethodChannel.invokeListMethod (package:flutter/src/services/platform_channel.dart:342:41)\n#4      MethodChannelFirebase._initializeCore (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:31:37)\n#5      MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:73:13)\n#6      Firebase.initializeApp (package:firebase_core/src/firebase.dart:42:47)\n#7      main (package:we_rise/main.dart:8:18)\n#8      _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:145:25)\n#9      _rootRun (dart:async/zon<\xe2\x80\xa6>\n
Run Code Online (Sandbox Code Playgroud)\n

由于我还是个新手,所以我无法完全理解出了什么问题,或者我在这里看到了什么。请在下面找到我的main.dart文件代码:

\n
Launching lib/main.dart on iPhone 13 in …
Run Code Online (Sandbox Code Playgroud)

null android ios firebase flutter

3
推荐指数
1
解决办法
1582
查看次数

dart 无法无条件调用方法“validate”,因为接收者可以为“null”

我正在研究flutter,我遇到了一个问题,但我无法解决它。我试图根据一些代码制作一个计算器,并出现此错误

无法无条件调用方法“validate”,因为接收者可能为“null”。尝试使调用成为有条件的(使用“?.”)或向目标添加空检查(“!”)。

这是代码

import 'package:flutter/material.dart';

void main() {
  runApp(MaterialApp(home: Home()));
}

class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  TextEditingController pesoController = TextEditingController();
  TextEditingController alturaController = TextEditingController();
  String _info = "Informe seus dados";
  GlobalKey<FormState> _formKey = GlobalKey<FormState>();

  void _reset() {
    setState(() {
      pesoController.text = "";
      alturaController.text = "";
      _info = "Informe seus dados";
    });
  }

  void _calculate() {
    double peso = double.parse(pesoController.text);
    double altura = double.parse(alturaController.text) / 100;
    double imc = peso …
Run Code Online (Sandbox Code Playgroud)

dart flutter

2
推荐指数
2
解决办法
1万
查看次数

标签 统计

flutter ×4

android ×1

dart ×1

firebase ×1

flutter-getx ×1

get ×1

ios ×1

nul ×1

null ×1

nullpointerexception ×1