颤振抑制没有正确返回响应



我有几个关于颤振的问题。我正在尝试获取通过他的id连接的用户名。

我是这样做的:

getUsername() async {
final user = supabase.auth.currentUser;
print(user!.id);
var response = await supabase
.from("profiles")
.select("username")
.eq("id", user!.id)
.execute();
print(response.data);
return response.data.toString();
}

print(response.data)返回me: [{username: test}]

当我尝试在我的应用程序上显示它时,这是我得到的[截图][1]

打印它的代码:

child: Text(
'$getUsername',

我想只有用户名(so "test")而不是[{username:…}]除了纠正的问题显示奇怪的代码在我的文本

谢谢![1]: https://i.stack.imgur.com/AEp5O.png

你给Text小部件一个函数引用本身,而不是函数结果。

编辑:预加载用户名

在类(主页)中创建一个变量,它需要是StatefulWidget

late Future<String> username;
@override
void initState() {
// now use this in the FutureBuilder
username = getUsername();
super.initState();
}

第一次更新getUsername为:

Future<String> getUsername() async {
final user = supabase.auth.currentUser;
final response = await supabase.from("profiles")
.select("username")
.eq("id", user!.id)
.execute();
return response.data![0]['username'];
}

试试这个:

child: FutureBuilder<String>(
future: username,
builder: (context, snapshot) {
if (snapshot.ConnectionState != ConnectionState.done) {
return const CircularProgressIndicator();
} else if (!snapshot.hasError && snapshot.hasData) {
return Text(snapshot.data!);
} else {
return Text('error');
}
}
)

相关内容

  • 没有找到相关文章

最新更新