我在理解未来构建器如何在颤振中工作时遇到一些困难。我想从未来的调用中传递一个字符串列表,并且我想在 SingleChildScrollView 中显示它们。
问题是当我访问时snapshot.data我无法访问列表的元素。因为在我的 SingleChildScrollView 中我有容器,并且在每个容器中我想显示列表中的一个字符串。
这是我用来检索数据的 Future getData 方法。
Future<List<String>> getData () async {
List<String> data = [];
data.add("A");
data.add("B");
data.add("C");
// DEBUG
await Future.delayed(const Duration(seconds: 2), (){});
return data;
}
Run Code Online (Sandbox Code Playgroud)
这是我未来的构建器,我想在其中显示每个容器中的数据。在加载中我添加了闪光效果。
FutureBuilder(
builder: (context, snapshot) {
List<Widget> children;
if (snapshot.hasData) {
children = <Widget>[
SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
children: [
Container(
margin: EdgeInsets.only(left: 5.w),
width: 40.w,
height: 20.h,
decoration: BoxDecoration(
color: green400,
borderRadius: BorderRadius.all(Radius.circular(5.w)),
),
),
Container(
margin: EdgeInsets.only(left: 5.w),
width: 40.w,
height: 20.h,
decoration: …Run Code Online (Sandbox Code Playgroud) 我在与我的 VPS 和 flutter 上的库建立连接时遇到了一些麻烦mysql1。Unhandled Exception: Error 1156 (08S01): Got packets out of order当我执行查询时出现此错误。
MySQL服务器版本:8.0.28
\n这是我的服务,我在其中执行与数据库的连接。
\nvar settings = ConnectionSettings(\n host: 'MY_ADDRESS', \n port: 3306,\n user: 'root',\n password: 'MY_PASSWORD',\n db: 'MY_DATABASE'\n);\n \nFuture connect() async {\n return await MySqlConnection.connect(settings);\n}\nRun Code Online (Sandbox Code Playgroud)\n然后我尝试用另一种方法检索用户信息:
\nvar connection = await mysqlService.connect();\n\nvar res = await connection.query('select name from users');\n\nawait connection.close();\nRun Code Online (Sandbox Code Playgroud)\n问题出在生成错误的 connection.query 函数中:
\n[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: Error 1156 (08S01): Got packets out of order\n#0 Handler.checkResponse\npackage:mysql1/\xe2\x80\xa6/handlers/handler.dart:77\n#1 QueryStreamHandler.processResponse\npackage:mysql1/\xe2\x80\xa6/query/query_stream_handler.dart:50\n#2 ReqRespConnection._handleData\npackage:mysql1/src/single_connection.dart:349\n#3 …Run Code Online (Sandbox Code Playgroud)