#sharedpreferences
#sharedpreferences
Вопрос:
void iniState(SharedPreferences prefs) {
super.initState();
_retrieveName(prefs);
}
String saveName = '' ;
Future<void> _retrieveName(SharedPreferences prefs) async {
final prefs = await SharedPreferences.getInstance();
if (!prefs.containsKey('name')) {
return;
}
setState(() {
saveName = prefs.getString('name');
});
print(saveName);
}
…
else {
_savedName(_usersemail.text);
nvState.setState(() {
nvState.navip = 1;
},
);
}
Когда «saveName» хорошо отображается на консоли, а сохранение и извлечение считаются успешными.
Однако он не доставляется в «String saveName». Что я могу сделать?
Я решил это сам. Вы успешно изменили весь свой код по-другому.
Весь код был длинным, поэтому я написал только измененную часть.
Измененный код
String _id = '';
String _pw = '';
SharedPreferences _prefs;
…
final _usersemail = TextEditingController();
final _userspass = TextEditingController();
…
void initState(){
super.initState();
_loadID();
}
…
_loadID() async{
_prefs = await SharedPreferences.getInstance();
setState(() {
_id = (_prefs.getString('id') ?? '');
_pw = (_prefs.getString('pw') ?? '');
print(_id);
print(_pw);
});
}
Widget build(BuildContext context) {
…
Padding(
padding: EdgeInsets.symmetric(horizontal: 15),
child: TextFormField(
controller: _usersemail,
…
}
else {
_id = _usersemail.text;
_pw = _userspass.text;
_prefs.setString('id', _id);
_prefs.setString('pw', _pw);
Комментарии:
1. Можете ли вы уточнить, что вы имеете в виду, когда говорите, что она «не доставлена
String saveName
«? Как вы проверяете значениеsaveName
?2. Я решил это. Я сделал другой код. Спасибо за проявленный интерес.