public UserLikeArticleScreen(
     UserLikeArticleScreenViewModel viewModel,
     UserLikeArticleScreenActionModel actionModel,
     Key key = null
     ) : base(key: key)
 {
     this.viewModel   = viewModel;
     this.actionModel = actionModel;
 }
 public override Widget build(BuildContext context)
 {
     return(new StoreConnector <AppState, UserLikeArticleScreenViewModel>(
                converter: state => {
         var user = state.userState.userDict.ContainsKey(key: this.userId)
                 ? state.userState.userDict[key: this.userId]
                 : new User();
         var likeArticleIds = user.likeArticleIds ?? new List <string>();
         return new UserLikeArticleScreenViewModel {
             likeArticleLoading = state.userState.userLikeArticleLoading,
             likeArticleIds = likeArticleIds,
             likeArticlePage = user.likeArticlesPage ?? 1,
             likeArticleHasMore = user.likeArticlesHasMore ?? false,
             isLoggedIn = state.loginState.isLoggedIn,
             articleDict = state.articleState.articleDict,
             userDict = state.userState.userDict,
             teamDict = state.teamState.teamDict
         };
     },
                builder: (context1, viewModel, dispatcher) => {
         var actionModel = new UserLikeArticleScreenActionModel {
             mainRouterPop = () => dispatcher.dispatch(new MainNavigatorPopAction()),
             startFetchUserLikeArticle = () => dispatcher.dispatch(new StartFetchUserLikeArticleAction()),
             fetchUserLikeArticle = pageNumber =>
                                    dispatcher.dispatch <IPromise>(Actions.fetchUserLikeArticle(userId: this.userId, pageNumber: pageNumber)),
             pushToArticleDetail = articleId => dispatcher.dispatch(
                 new MainNavigatorPushToArticleDetailAction {
                 articleId = articleId
             }
                 ),
             pushToReport = reportId => dispatcher.dispatch(
                 new MainNavigatorPushToReportAction {
                 reportId = reportId,
                 reportType = ReportType.article
             }
                 ),
             pushToBlock = articleId => {
                 dispatcher.dispatch(new BlockArticleAction {
                     articleId = articleId
                 });
                 dispatcher.dispatch(new DeleteArticleHistoryAction {
                     articleId = articleId
                 });
             },
             shareToWechat = (type, title, description, linkUrl, imageUrl) => dispatcher.dispatch <IPromise>(
                 Actions.shareToWechat(type: type, title: title, description: description, linkUrl: linkUrl,
                                       imageUrl: imageUrl))
         };
         return new UserLikeArticleScreen(viewModel: viewModel, actionModel: actionModel);
     }
                ));
 }