【发布时间】:2019-11-01 18:26:04
【问题描述】:
我试图在我制作的颤振应用程序的每个页面中添加一个用户名。我的意思是在我页面的侧抽屉中我是新手,所以我在这方面遇到了很大的困难帮助我
我尝试使用共享首选项,但我不能这样做,因为变量说它是一个未来的字符串。我让它在一个人登录时保存用户名,当我试图找回它时它工作我不能
Future<String> getuname() async {
final prefs = await SharedPreferences.getInstance();
final name = "username";
var user = prefs.getString(name);
var username = '${user[0].toUpperCase()}${user.substring(1)}';
print('get $username');
return username;
}
我把它加到抽屉里了
ListTile(
leading: Icon(Icons.user),
title: Text(_get()),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => MyProfilePage()),
);
}),
String uname = '';
@override
void initState() {
getuname().then((value) {
setState(() {
uname = value;
});
});
_selectedDay = DateTime.now();
_events = {
_selectedDay.subtract(Duration(days: 30)): ['Event A0', 'Event B0', 'Event C0'],
_selectedDay.subtract(Duration(days: 27)): ['Event A1'],
_selectedDay.subtract(Duration(days: 20)): ['Event A2', 'Event B2', 'Event C2', 'Event D2'],
_selectedDay.subtract(Duration(days: 16)): ['Event A3', 'Event B3'],
_selectedDay.subtract(Duration(days: 10)): ['Event A4', 'Event B4', 'Event C4'],
_selectedDay.subtract(Duration(days: 4)): ['Event A5', 'Event B5', 'Event C5'],
_selectedDay.subtract(Duration(days: 2)): ['Event A6', 'Event B6'],
_selectedDay: [uname, 'Event B7', 'Event C7', 'Event D7'],
_selectedDay.add(Duration(days: 1)): ['Event A8v', 'Event B8', 'Event C8', 'Event D8'],
_selectedDay.add(Duration(days: 3)): Set.from(['Event A9', 'Event A9', 'Event B9']).toList(),
_selectedDay.add(Duration(days: 7)): ['Event A10', 'Event B10', 'Event C10'],
_selectedDay.add(Duration(days: 11)): ['Event A11', 'Event B11'],
_selectedDay.add(Duration(days: 17)): ['Event A12', 'Event B12', 'Event C12', 'Event D12'],
_selectedDay.add(Duration(days: 22)): ['Event A13', 'Event B13'],
_selectedDay.add(Duration(days: 26)): ['Event A14', 'Event B14', 'Event C14'],
};
_selectedEvents = _events[_selectedDay] ?? [];
_visibleEvents = _events;
_visibleHolidays = _holidays;
_controller = AnimationController(
vsync: this,
duration: const Duration(milliseconds: 400),
);
_controller.forward();
super.initState();
}
我无法获取用户名的值,但它在小部件中有效,但在 initstate 中无效。帮帮我
【问题讨论】:
-
如何使用继承的小部件并将您的用户名存储在其中
-
怎么样??给我一个样品
-
我会建议使用hive,它的性能更高、更安全,而且更加安全。
标签: string login flutter async-await