fix: check mounted before setState

This commit is contained in:
Rongjian Zhang 2019-02-08 19:44:10 +08:00
parent 434781a27e
commit ddb9497ab8
6 changed files with 30 additions and 19 deletions

View File

@ -104,7 +104,6 @@ class _HomeState extends State<Home> {
return MaterialApp(
theme: ThemeData(),
home: Scaffold(
// appBar: AppBar(title: Text('Home')),
body: _buildScreen(active),
bottomNavigationBar: BottomNavigationBar(
items: _buildNavigationItems(),

View File

@ -79,7 +79,7 @@ class _SettingsProviderState extends State<SettingsProvider> {
super.initState();
_initDataFromPref();
_sub = getUriLinksStream().listen(_loginWithGithub, onError: (err) {
_sub = getUriLinksStream().listen(_onSchemeDetected, onError: (err) {
print(err);
});
}
@ -91,7 +91,7 @@ class _SettingsProviderState extends State<SettingsProvider> {
}
// https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#web-application-flow
void _loginWithGithub(Uri uri) async {
void _onSchemeDetected(Uri uri) async {
// get token by code
var code = uri.queryParameters['code'];
// print(code);
@ -157,7 +157,7 @@ class _SettingsProviderState extends State<SettingsProvider> {
} else if (Platform.isIOS) {
theme = ThemeMap.cupertino;
}
// theme = ThemeMap.material;
theme = ThemeMap.material;
setState(() {
ready = true;

View File

@ -80,7 +80,11 @@ class _ListScaffoldState extends State<ListScaffold> {
} catch (err) {
print(err);
} finally {
loadingMore = false;
if (mounted) {
setState(() {
loadingMore = false;
});
}
}
}

View File

@ -31,16 +31,20 @@ class NewsScreenState extends State<NewsScreen> {
onRefresh: () async {
page = 1;
var items = await fetchEvents(page);
setState(() {
_events = items;
});
if (mounted) {
setState(() {
_events = items;
});
}
},
onLoadMore: () async {
page = page + 1;
var items = await fetchEvents(page);
setState(() {
_events.addAll(items);
});
if (mounted) {
setState(() {
_events.addAll(items);
});
}
},
);
}

View File

@ -144,9 +144,11 @@ $key: pullRequest(number: ${item.number}) {
return NotificationItem(
payload: item,
markAsRead: () {
setState(() {
groupMap[entry.key].items[index].unread = false;
});
if (mounted) {
setState(() {
groupMap[entry.key].items[index].unread = false;
});
}
},
);
});

View File

@ -85,11 +85,13 @@ class _RepoScreenState extends State<RepoScreen> {
queryRepo(context),
fetchReadme(context),
]);
setState(() {
loading = false;
payload = items[0];
readme = items[1];
});
if (mounted) {
setState(() {
loading = false;
payload = items[0];
readme = items[1];
});
}
}
@override