From e1948cd08a5e755748b9b486d42b3c76de025e01 Mon Sep 17 00:00:00 2001 From: Sang-oh Kim Date: Fri, 16 Feb 2024 21:39:03 +0900 Subject: [PATCH] =?UTF-8?q?Fix(post=5Fview=5Fpage.dart):=20=EC=A4=91?= =?UTF-8?q?=EB=B3=B5=20=EC=88=98=EC=A0=95=20=EB=B0=A9=EC=A7=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 기존의 모델을 수정하고 요청을 보내면 기존의 작업을 취소하는 API가 호출되기 때문에 원래 모델을 복사하는 형태로 수정함. --- lib/pages/post_view_page.dart | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/lib/pages/post_view_page.dart b/lib/pages/post_view_page.dart index a94d65ec..87026334 100644 --- a/lib/pages/post_view_page.dart +++ b/lib/pages/post_view_page.dart @@ -754,13 +754,15 @@ class _PostViewPageState extends State { children: [ // 좋아요 버튼 InkWell( + // API 요청 이전에 먼저 state를 변경한 뒤에 요청 결과에 따라 처리하기 onTap: () async { - // API 요청 이전에 먼저 state를 변경한 뒤에 요청 결과에 따라 처리하기 + // 원래의 상태를 보관하기 위해 임시 모델 생성 + ArticleModel tmpArticle = ArticleModel.fromJson(_article.toJson()); ArticleController(model: _article, userProvider: userProvider) .setVote(true); _updateState(); bool res = await ArticleController( - model: _article, + model: tmpArticle, userProvider: userProvider, ).posVote(); debugPrint('좋아요 결과 ${res}'); @@ -785,13 +787,15 @@ class _PostViewPageState extends State { const SizedBox(width: 20), // 싫어요 버튼 InkWell( + // API 요청 이전에 먼저 state를 변경한 뒤에 요청 결과에 따라 처리하기 onTap: () async { - // API 요청 이전에 먼저 state를 변경한 뒤에 요청 결과에 따라 처리하기 + // 원래의 상태를 보관하기 위해 임시 모델 생성 + ArticleModel tmpArticle = ArticleModel.fromJson(_article.toJson()); ArticleController(model: _article, userProvider: userProvider) .setVote(false); _updateState(); bool res = await ArticleController( - model: _article, + model: tmpArticle, userProvider: userProvider, ).negVote(); debugPrint('싫어요 결과 ${res}'); @@ -1351,15 +1355,20 @@ class _PostViewPageState extends State { child: Row( children: [ InkWell( + // API 요청 이전에 먼저 state를 변경한 뒤에 요청 결과에 따라 처리하기 onTap: () async { - // API 요청 이전에 먼저 state를 변경한 뒤에 요청 결과에 따라 처리하기 + // 원래 모델값을 저장하기 위해 임시 모델 생성 + CommentNestedCommentListActionModel + tmpCurComment = + CommentNestedCommentListActionModel + .fromJson(curComment.toJson()); CommentController( model: curComment, userProvider: userProvider) .setVote(true); _updateState(); - bool res = await ArticleController( - model: _article, + bool res = await CommentController( + model: tmpCurComment, userProvider: userProvider, ).posVote(); debugPrint('좋아요 결과 ${res}'); @@ -1387,15 +1396,20 @@ class _PostViewPageState extends State { ), const SizedBox(width: 12), InkWell( + // API 요청 이전에 먼저 state를 변경한 뒤에 요청 결과에 따라 처리하기 onTap: () async { - // API 요청 이전에 먼저 state를 변경한 뒤에 요청 결과에 따라 처리하기 + // 원래 모델값을 저장하기 위해 임시 모델 생성 + CommentNestedCommentListActionModel + tmpCurComment = + CommentNestedCommentListActionModel + .fromJson(curComment.toJson()); CommentController( model: curComment, userProvider: userProvider) .setVote(false); _updateState(); - bool res = await ArticleController( - model: _article, + bool res = await CommentController( + model: tmpCurComment, userProvider: userProvider, ).negVote(); debugPrint('좋아요 결과 ${res}');