Skip to content

Commit 4e5c890

Browse files
committed
修复某些情况下博文页、公众号页不会初始化的bug
1 parent 03e38d3 commit 4e5c890

File tree

6 files changed

+17
-2
lines changed

6 files changed

+17
-2
lines changed

lib/http/interceptors/log_interceptors.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import 'package:wanandroid_flutter/utils/index.dart';
44
import '../dio_util.dart';
55

66

7-
bool isDebug = true;
7+
bool isDebug = false;
88

99
///用于Dio的请求日志拦截器
1010
class LogsInterceptors extends InterceptorsWrapper {

lib/page/home/article/bloc/article_bloc.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ class ArticleBloc extends Bloc<ArticleEvent, ArticleState> {
2222
if (state is HomeLoaded) {
2323
print('博文子页:主页加载完成,开始加载子页');
2424
dispatch(LoadArticle(-1));
25+
}else if(homeBloc.alredyHomeloaded && currentState == ArticleUnready()){
26+
print('博文子页:在构造函数之前主页就已经加载完成并可能已经发送了其他bloc state,开始加载子页');
27+
dispatch(LoadArticle(-1));
2528
}
2629
});
2730
}

lib/page/home/home/bloc/home_bloc.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ class HomeBloc extends Bloc<HomeEvent, HomeState> {
1313
bool isLogin = false;
1414
String userName;
1515

16+
bool alredyHomeloaded = false;
17+
1618
@override
1719
HomeState get initialState => HomeLoading();
1820

@@ -33,6 +35,7 @@ class HomeBloc extends Bloc<HomeEvent, HomeState> {
3335

3436
Stream<HomeState> _mapLoadHomeToState() async* {
3537
try {
38+
alredyHomeloaded = false;
3639
yield HomeLoading();
3740
isLogin = await SPUtil.isLogin();
3841
if (isLogin) {
@@ -41,6 +44,7 @@ class HomeBloc extends Bloc<HomeEvent, HomeState> {
4144
userName = null;
4245
}
4346
yield HomeLoaded(isLogin, userName: userName);
47+
alredyHomeloaded = true;
4448
if (bmobEnable && isLogin && userName != null) {
4549
dispatch(LoadBmobInfo(userName));
4650
}
@@ -51,10 +55,12 @@ class HomeBloc extends Bloc<HomeEvent, HomeState> {
5155

5256
Stream<HomeState> _mapLogoutHomeToState() async* {
5357
try {
58+
alredyHomeloaded = false;
5459
yield HomeLoading();
5560
await AccountApi.logout();
5661
await SPUtil.setLogin(false);
5762
yield HomeLoaded(isLogin);
63+
alredyHomeloaded = true;
5864
yield HomeBmobLoaded(null);
5965
dispatch(LoadHome());
6066
} catch (e) {

lib/page/home/project/bloc/project_bloc.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ class ProjectBloc extends Bloc<ProjectEvent, ProjectState> {
2727
dispatch(LoadProject());
2828
}
2929
});
30+
3031
}
3132

3233
@override

lib/page/home/web_view.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
22
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';
33
import 'package:url_launcher/url_launcher.dart';
44
import 'package:wanandroid_flutter/res/index.dart';
5+
import 'package:wanandroid_flutter/utils/string_decode.dart';
56
import 'package:wanandroid_flutter/views/loading_view.dart';
67

78
class WebViewPage extends StatefulWidget {
@@ -42,7 +43,7 @@ class _WebViewPageState extends State<WebViewPage> {
4243
Widget build(BuildContext context) {
4344
var args = ModalRoute.of(context).settings.arguments;
4445
if (args is Map) {
45-
title = args['title'];
46+
title = decodeString(args['title']);
4647
url = args['url'];
4748
}
4849
return WebviewScaffold(

lib/page/home/wxarticle/bloc/wxarticle_bloc.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ class WXArticleBloc extends Bloc<WXArticleEvent, WXArticleState> {
2222
if (state is HomeLoaded) {
2323
print('微信公众号子页:主页加载完成,开始加载子页');
2424
dispatch(LoadWXArticle(408)); //408是'鸿洋'公众号分类id
25+
} else if (homeBloc.alredyHomeloaded &&
26+
currentState == WXArticleUnready()) {
27+
print('微信公众号子页:在构造函数之前主页就已经加载完成并可能已经发送了其他bloc state,开始加载子页');
28+
dispatch(LoadWXArticle(408));
2529
}
2630
});
2731
}

0 commit comments

Comments
 (0)