flutter - 在flutter中从其他文件访问私有类或函数
问题描述
我创建了一个有很多部分的小部件。因此,在一个文件中创建此小部件并不是一个好习惯。所以,我在许多文件中重新排列。我将这些小部件(部分)设为私有,因此无法在其他文件中访问这些小部件。我只想在根小部件中访问这些小部件。(或者可以在其目录文件中访问私有类)我该怎么做?
// homepage/homepage.dart
import 'package:flutter/material.dart';
class Homepage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: [
_Part1(),
_Part2(),
],
),
);
}
}
// homepage/part1.dart
import 'package:flutter/material.dart';
class _Part1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
);
}
}
// homepage/part2.dart
import 'package:flutter/material.dart';
class _Part2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
);
}
}
解决方案
Dart 具有part
文件功能。虽然这不是我认为的用途,但它也可以在这里工作。只需这样做:
// homepage/homepage.dart
import 'package:flutter/material.dart';
part 'part1.dart';
part 'part2.dart';
class Homepage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
child: Column(
children: [
_Part1(),
_Part2(),
],
),
);
}
}
// homepage/part1.dart
part of 'homepage.dart';
class _Part1 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
);
}
}
// homepage/part2.dart
part of 'homepage.dart';
class _Part2 extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
);
}
}
部分文件基本上是引用文件的一部分,因此它可以访问引用文件中的所有内容,反之亦然。如果您需要导入任何内容,则必须将它们导入到引用的文件中,因为part
文件从引用的文件中获取导入。因此,您会注意到文件中import 'package:flutter/material.dart';
没有part
。
推荐阅读
- python - 如何在文本编辑器中添加热键?
- python - 如何在python中读取来自串口的字节数据?
- ruby-on-rails - 如何在 Shrine 中调整原始图像本身的大小时上传
- c# - 如何在 C# 中返回多个值?
- javascript - JS AWS SQS 不返回消息
- python - 通过多次单击“调整”->“紧密布局”以交互方式使无花果布局更紧密,但无法在我的代码中重现它
- sql-server - SCOM 2019 - Windows Server 2012 集群监控问题
- java - 如何重构从属性文件中获取多个@Value 的方式
- linux - 如何在搜索中转义字符 `<` 和 `>` 并替换传递给 sed 的字符串?
- javascript - 汇总 - 忽略一些导入