Chcę zrobić mój kodeks kodu, ale mam problem, gdy oddzielę widżety, których używam często w 1 pliku

Oto mój główny widget

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(
                    ),
                  ],
                ),
              )
          )
      )
    ;
  }
}

To jest mój widget_helper.dart

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

Problem polega na tym, że mam jakiś błąd. Mam import dla widget_helper, ale nadal otrzymuję błąd

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

Co powinienem zrobić? Chcę tylko zrobić kodeks

5
Ray Coder 12 marzec 2020, 12:07

2 odpowiedzi

Najlepsza odpowiedź

Usuń underline
Zmiana z
.

_loadingWidget(context)

Do

loadingWidget(context)
4
chunhunghan 12 marzec 2020, 09:26

Istnieje kilka problemów z kodem:

  • Dla tak małego kodu, takiego jak pokazujące okrągłeprogressIndicator, nie należy umieścić metody w oddzielnym pliku. Zamiast składać kod "NEATER", co utrudnia przeczytanie. Jeśli naprawdę chcesz mieć go w osobnym pliku, utwórz widżet bezpańskich, który pokazuje żądany kod. Ale potem znowu używasz okrężnegoProgressIndicator. Nie zapisujesz żadnego kodu, wystarczy tworzyć bardziej niepotrzebny kod.
  • Masz już rusztowanie, w którym zamierzasz pokazać okrągłeprogressIndicator. Nie musisz mieć innego. Nic nie robi.
  • Podczas gdy Dart używa Camelcase do zmiennej nazewnictwa, nazwy plików używają Snake_case. Spróbuj użyć go podczas nazywania plików.
1
João Soares 12 marzec 2020, 09:26