我在我的应用程序中使用了块架构。我的代码块中的一个方法解析listView中挑选的address-ID并返回城市名称。在此之后,我希望我的Text-Editing-Controller具有这个拾取值,并将其显示在textediting域中:
BlocA使用一个简单的ID,并使用Google-Places API查找它。然后,BlocA返回一个新状态,并将解析后的地址作为状态属性。在点击listView-item之后,运行下面的代码没有显示正确的城市。
不幸的是,等待不起作用。
// ListView.builder code
onTap: () {
context
.read<BlocA>()
.add(PickAddress(id: state.searchResults[index].placeId));
FocusScope.of(context).unfocus(); //hide Keyboard
_textController.value = TextEditingValue(text: state.address.city);发布于 2021-05-03 05:55:39
代码不够清楚记住使用"await“你必须在onTap上设置异步,如下所示
onTap: () async { ....如果您这样做了,但仍然不能工作,请发送完整的代码
发布于 2021-05-03 06:18:46
你知道你的Bloc实际返回什么吗?使用调试器并单步执行代码,以查看代码中实际发生了什么。
当涉及到使用Bloc来构建状态时,您通常不会通过调用.state来访问状态。
_textController.value = TextEditingValue(text: state.address.city);行不是您访问状态的方式。当Bloc发送新状态时,小工具将基于新状态重新构建和呈现。
https://stackoverflow.com/questions/67359732
复制相似问题