从 Flutter 中的另一个屏幕调用 Future 函数
Calling a Future Function from another screen in Flutter
我在 popup.dart
中有一个 Future 函数
import 'package:flutter/material.dart';
import 'dart:async';
void main() {
runApp(new MaterialApp(
home: new Popup(),
));
}
class Popup extends StatefulWidget {
@override
_PopupState createState() => _PopupState();
}
enum Answers{TEAMA,TEAMB}
class _PopupState extends State<Popup> {
String _value = '';
void _setValue(String value) => setState(() => _value = value);
Future _askUser() async {
switch(
await showDialog(
context: context,
child: new SimpleDialog(
title: new Text('SELECT YOUR TEAM',
),
我有 pages/pageone.dart,我想将其称为“_askUser”到 onTap。
import 'package:flutter/material.dart';
import 'package:myapp/popup.dart';
....
GestureDetector(
onTap: _askUser,
child: Container(
child: ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: Image.asset('assets/PLUS.png',
scale: 8),
),
),
),
我遇到错误 "Undefined name '_askUser'."
如何调用_askUser?
在 popup.dart 中一切正常,但我无法在 pageone.dart
中访问相同的弹出窗口 link
提前致谢!
我想最好的实现方式是在 user_service.dart 文件中声明您需要的有关用户的所有信息。在那里,你创建了一个 class like
class UserService {
var playerTeam; // just for example
askUser() {} // the underscore in everything indicates it is private.
}
让你的 askUser 改变 "playerTeam",当你需要调用它时,使用
UserService userService = UserService();
userService.askUser();
我不确定你的代码,但是创建一个 UserService 的单例可能会有很大帮助,因为它只有一个实例
我在 popup.dart
中有一个 Future 函数import 'package:flutter/material.dart';
import 'dart:async';
void main() {
runApp(new MaterialApp(
home: new Popup(),
));
}
class Popup extends StatefulWidget {
@override
_PopupState createState() => _PopupState();
}
enum Answers{TEAMA,TEAMB}
class _PopupState extends State<Popup> {
String _value = '';
void _setValue(String value) => setState(() => _value = value);
Future _askUser() async {
switch(
await showDialog(
context: context,
child: new SimpleDialog(
title: new Text('SELECT YOUR TEAM',
),
我有 pages/pageone.dart,我想将其称为“_askUser”到 onTap。
import 'package:flutter/material.dart';
import 'package:myapp/popup.dart';
....
GestureDetector(
onTap: _askUser,
child: Container(
child: ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: Image.asset('assets/PLUS.png',
scale: 8),
),
),
),
我遇到错误 "Undefined name '_askUser'."
如何调用_askUser?
在 popup.dart 中一切正常,但我无法在 pageone.dart
中访问相同的弹出窗口 link提前致谢!
我想最好的实现方式是在 user_service.dart 文件中声明您需要的有关用户的所有信息。在那里,你创建了一个 class like
class UserService {
var playerTeam; // just for example
askUser() {} // the underscore in everything indicates it is private.
}
让你的 askUser 改变 "playerTeam",当你需要调用它时,使用
UserService userService = UserService();
userService.askUser();
我不确定你的代码,但是创建一个 UserService 的单例可能会有很大帮助,因为它只有一个实例