【发布时间】:2019-06-28 11:57:08
【问题描述】:
我正在使用 url_launcher 包在我的应用中启动 url。
我有许多链接需要使用单独的按钮来启动。
但是,当我加载我的无状态小部件时,它会启动“_launchURL”功能并立即打开https://www.yahoo.com。
我相信这与创建时调用的小部件有关。但是“onPressed”中的函数不应该在实际按下之前调用,对吧?
class myStateless extends StatelessWidget {
@override
Widget build(BuildContext context) {
return ListView(
children: <Widget>[
button("Link 1", "https://www.yahoo.com"),
button("Link 2", "https://www.google.com"),
]
);
}
}
Widget button(String text, String url) {
return RaisedButton(
child: Text(text),
onPressed: _launchURL(url),
);
}
_launchURL(url) async {
if (await canLaunch(url)) {
await launch(url);
} else {
throw 'Could not launch $url';
}
}
然后我得到错误:
type 'Future<dynamic>' is not a subtype of type 'String'
【问题讨论】: