簡體   English   中英

其他文件中的單獨小部件顫動

[英]Separate widgets in other files flutter

我想讓我的代碼更整潔,但是當我在 1 個文件中分離我經常使用的小部件時遇到問題

這是我的主要小部件

import 'package:a_tiket/Helpers/widget_helper.dart';
class LoginPage extends StatefulWidget {    
  @override
  _LoginPageState createState() => _LoginPageState();
}
class _LoginPageState extends State<LoginPage> {

  bool _isLoading = false;
  var _message = '';
  var _hasError = false;

  @override
  Widget build(BuildContext context) {
    return
      _isLoading ?
      _loadingWidget(context)
          :
      Scaffold(
          body: SingleChildScrollView(
              child: Container(
                    ),
                  ],
                ),
              )
          )
      )
    ;
  }
}

這是我的 widget_helper.dart

Widget _loadingWidget (BuildContext context){
  return Scaffold(
    body: Center(
      child: CircularProgressIndicator(
        backgroundColor: ACCENT_COLOR,
        valueColor: new AlwaysStoppedAnimation<Color>(PRIMARY_COLOR),
      ),
    ),
  );
}

問題是我有一些錯誤。 我已經為 widget_helper 添加了導入,但仍然出現錯誤

lib/Pages/loginPage.dart:193:7: Error: The method '_loadingWidget' isn't defined for the class '_LoginPageState'.

我該怎么辦? 我只是想讓代碼更整潔

請刪除underline
從改變

_loadingWidget(context)

loadingWidget(context)

您的代碼存在一些問題:

  • 對於像顯示 CircularProgressIndicator 這樣的一小段代碼,您不應該將方法放在單獨的文件中。 不是讓你的代碼“更整潔”,而是讓它更難閱讀。 如果你真的想把它放在一個單獨的文件中,創建一個無狀態小部件來顯示你想要的代碼。 但話說回來,您只是在使用 CircularProgressIndicator。 您沒有保存任何代碼,只是創建了更多不必要的代碼。
  • 您已經有一個 Scaffold,您將在其中顯示 CircularProgressIndicator。 你不需要有另一個。 它什么都不做。
  • Dart 使用駝峰命名法來命名變量,而文件名使用蛇形大小寫。 命名文件時嘗試使用它。

暫無
暫無

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

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