flutter - Flutter web,onTap 在 safari 上被调用两次
问题描述
在我的一些 onTap 函数的 Safari 上,我的代码被执行了两次。它并不总是偶尔发生。
例如:
goToSearchPage() {
Navigator.pushNamed(
context, '/searchPage',
arguments: SearchPageArguments(
matchcode: _controllerSearchInput.text.trim().toString()
)
);
_controllerSearchInput.text = '';
}
onTap: () {
_controllerSearchInput.text = matchcode;
goToSearchPage();
},
当 onTap 有时它会加载 2 次searchpage
,第一次使用正确的参数,第二次使用空参数。
另一个例子:
onTap: () {
setState(() {
_loading = true;
});
http.Client()
.get("https://myApi")
.then((response) =>response.body)
.then(json.decode)
.then((json) {
setState(() {
_loading = false;
});
Navigator.popAndPushNamed(
context, '/paymentPage',
arguments: PaymentPageArguments(
ordersToPay: json
)
);
});
}
在这种情况下,我的 API 被调用后paymentPage
没有显示,因为我认为导航器被弹出两次而不是一次。我的 API 只被调用一次。
那些奇怪的行为只发生在 safari 中,我不确定如何调试它。
解决方案
推荐阅读
- typescript - vuejs - v-model 不更新类属性
- javascript - 如何在 react native 中设置 redux?
- r - 用 0 按组替换前导 NA,但保留其他 NA
- java - 你好!将 ImageIcon 设置为 Jframe 和其他组件似乎不起作用。我需要帮助
- arrays - 显示来自 json 文件的对象
- c# - 有没有办法在 MVC Webgrid 的列标题上显示鼠标?
- javascript - .map() 未定义为函数
- python - 在 Python 中评估引用全局变量的赋值语句的确切过程是什么?
- java - Spring Transaction (@Transaction) with Plain JDBC without JdbcTemplate
- javascript - Javascript将额外参数传递给回调