Flutter/Dart 范围问题 - Return 需要信息来防止重复文件上传?
Flutter/Dart Scope Problem - Return info needed to prevent Duplicate File Upload?
我有一个将文件上传到服务器的按钮和 returns 文件的 oldname
。在上传之前,我想检查文件是否已经上传。但不幸的是,范围似乎有问题,即使上一次上传成功,oldname
变量也总是 returns null。这是代码;
FlatButton(
onPressed: () async {
String oldname;
if (oldname == null) {
oldname = await uploadAudio(
currentuserid: currentuserid,
filepath: _current.path);
} else {alertUpLoaded(context);}
},
)
您的问题是 oldname
将始终是 null
,因为它的初始化 String oldname
在同一构建方法中。
将String oldname
移动到小部件的构建函数上方
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String _oldName;
@override
Widget build(BuildContext context) {
return FlatButton(
onPressed: () async {
if (_oldName == null) {
_oldName = await uploadAudio(currentuserid: currentuserid, filepath: _current.path);
} else {
alertUpLoaded(context);
}
},
child: Text("Press Me"),
);
}
}
我有一个将文件上传到服务器的按钮和 returns 文件的 oldname
。在上传之前,我想检查文件是否已经上传。但不幸的是,范围似乎有问题,即使上一次上传成功,oldname
变量也总是 returns null。这是代码;
FlatButton(
onPressed: () async {
String oldname;
if (oldname == null) {
oldname = await uploadAudio(
currentuserid: currentuserid,
filepath: _current.path);
} else {alertUpLoaded(context);}
},
)
您的问题是 oldname
将始终是 null
,因为它的初始化 String oldname
在同一构建方法中。
将String oldname
移动到小部件的构建函数上方
class MyHomePage extends StatefulWidget {
MyHomePage({Key key}) : super(key: key);
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String _oldName;
@override
Widget build(BuildContext context) {
return FlatButton(
onPressed: () async {
if (_oldName == null) {
_oldName = await uploadAudio(currentuserid: currentuserid, filepath: _current.path);
} else {
alertUpLoaded(context);
}
},
child: Text("Press Me"),
);
}
}