簡體   English   中英

如何將其他 dart 文件導入 flutter 中的有狀態小部件?

[英]How can I import other dart file to stateful widget in flutter?

我是撲撲的新手並試圖學習它。

我在 lib 中有 main.dart,lib>ui>screens 中有 HomePage.dart,lib>ui>widgets 中有 Widgets.dart。 我將 HomePage.dart 導入到 main.dart,我想要的是將 Widgets.dart 導入到 HomePage.dart。

HomePage.dart 包含有狀態的小部件,而 Widgets.dart 包含一些小部件和一個有狀態的類。

下面是部分代碼。

///main.dart//

import 'package:flutter/material.dart';
import 'ui/screens/HomePage.dart';
import 'ui/screens/AnalysisPage.dart';

void main(){
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'covid-19',
      initialRoute: '/',
      routes: {
        '/': (context) => HomePage(),
        '/analysis': (context) => AnalysisPage(),
        //'/news': (context) => NewsPage(),
        //'/more': (context) => MorePage(),
      },
      //home: HomePage(),
    );
  }
}

///HomePage.dart//

import 'package:flutter/material.dart';
import 'package:flutter/services.dart' show rootBundle;
import 'package:covid_app/ui/widgets/Widgets.dart';


class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  String data = '';

  fetchFileData() async {
    String responseText;
    responseText = await rootBundle.loadString('lib/assets/number.txt');

    setState(() {
      data = responseText;
    });
  }

  @override
  void initState() {
    fetchFileData();
    super.initState();
  }

  @override
  Widget build(BuildContext context){

    final Size size= MediaQuery.of(context).size;
    List<String> number = data.split(' ');

    return Scaffold(...)

///Widgets.dart//

import 'package:flutter/material.dart';

Widget _drawer(BuildContext context){
  return Drawer(...)

//More widgets in this file, but I'll skip it.

class ClassificationCircle extends StatefulWidget {

  @override
  _ClassificationCircleState createState() => _ClassificationCircleState();
}

class _ClassificationCircleState extends State<ClassificationCircle> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(...)

感謝您的閱讀,我會等待您的建議!

文件結構!點擊我!

從小部件名稱的開頭刪除“_”

如果您在小部件名稱之前附加“_”,您的小部件將作為私有。

暫無
暫無

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

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