flutter - Flutter:访问另一个类/文件中的函数

标签 flutter dart

在以下设置中,我将如何允许fileb.dart访问reset中的函数filea.dart:
filea.dart:

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Test',
      theme: ThemeData(
        primaryColor: Colors.pink[200],
      ),
      home: MyHomePage(title: ''),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;

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

class MyHomePageState extends State<MyHomePage>
{


  int testCount = 0;

  void test() {
    setState(() {
      testCount++;
    });
  }

fileb.dart
import 'package:flutter/material.dart';
import './filea.dart';

class Buttons extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[
        Padding(
          padding: const EdgeInsets.only(bottom: 11.0, top: 20),
          child: Row(
            mainAxisAlignment: MainAxisAlignment.spaceAround,
            children: <Widget>[
              FloatingActionButton(
                heroTag: "btn1",
                onPressed: () => MyHomePageState.test(),
                child: const Icon(Icons.cancel),
                splashColor: Colors.pink[900],
                backgroundColor: Colors.pink[200],
              ),
              ),
            ],
          ),
        ),
      ],
    );
  }
}


要进行这项工作,我需要更改什么?

最佳答案

除非它是static,否则不能在另一个类中调用该函数,并且该函数不应处理non-static / local的任何变量,否则它将通过错误进行处理。

调用函数的另一种方法是将其作为参数传递给页面。

关于flutter - Flutter:访问另一个类/文件中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61959576/

相关文章:

java - 无法运行 flutter doctor --android-licenses

dart - 如何将函数作为可选参数传递给 dart 函数中的默认值?

flutter - Dart/Flutter尝试从另一个小部件更改小部件的变量

flutter - 如何将命令行参数(如 "-FIRAnalyticsDebugEnabled")传递给 flutter 应用程序

firebase - 如何通过不同页面(上下文)共享来自 Streambuilder 的提供者数据

Flutter TextField 清除按钮位置错误

Flutter、Dart 将句子每1个字符拆分为2个字符大小,用于flutter自定义tts项目

dart - 使用AngularDart的Facebook身份验证

android - 如何重新加载 future 数据的屏幕

flutter - 有没有办法让多个 FutureBuilder 从 ChangeNotifier 使用同一个 future ?