소개
게시글
질문&답변
2022.03.25
질문이있습니다.!!!
width px 박으니 xs{24} sm{6} md{6} 해준게 잘 안맞네용 ..ㅠㅠ 다름이아니라 질문이 있습니다. me.Posts.length, me.Followings.length, meFollwers.length 부분 게시글 쓸때는 왼쪽 프로필에 짹짹length가 바로 변하던데 : 메인화면에서 팔로우랑 언팔로우 버튼 클릭시 length와 버튼 name(팔로우, 언팔로우) 이 변하지 않아요.... 새로고침하면 정상적으로 변하더라구요 왜그런지 생각해봤는데 게시글 묶어줄땐 unshift 이고 팔로우 언팔로우시에는 push 와 filter 인거 말고는 없는게 같은데 이게 문제는 아니지 않을까요? 잘 모르겠네요.... 핵심은 기능은 정상적으로 작동합니다.. 단 새로고침시... 실시간으로는 버튼 name이랑 length 숫자가 안바끼네요... 보통 이벤트가 일어나면 react 특성상 리렌더링이 될텐데 말이죠... ㅠㅠ UserProfile, reducers, FollowButton 순입니다.! return ( Card actions={[ div key="twit">Link href={`/user/${me.id}`}>a>내가쓴글br/>{me.Posts.length}a>Link>div>, div key="followings">Link href="/profile">a>팔로잉br/>{me.Followings.length}a>Link>div>, div key="follower">Link href="/profile">a>팔로워br/>{me.Followers.length}a>Link>div>, ]} switch (action.type) { case FOLLOW_REQUEST : // 팔로우 요청 draft.followLoading = true; draft.followError = null; draft.followDone = false; break; case FOLLOW_SUCCESS : //팔로우 성공 draft.followLoading = false; draft.me.Followings.push({id: action.data.UserId}); //unshift//push draft.followDone = true; break; case FOLLOW_FAILURE : //팔로우 실패 draft.followLoading = false; draft.followError = action.error; //로그인 실패 확인 break; case UNFOLLOW_REQUEST : //언팔로우 요청 draft.unfollowLoading = true; draft.unfollowError = null; draft.unfollowDone = false; break; case UNFOLLOW_SUCCESS : //언팔로우 성공 draft.unfollowLoading = false; draft.unfollowDone = true; draft.me.Followings = draft.me.Followings.filter((v) => v.id !== action.data.UserId); break; case UNFOLLOW_FAILURE : //언팔로우 실패 draft.unfollowLoading = false; draft.unfollowError = action.error; //로그인 실패 확인 break; import React, { useCallback } from 'react';import { Button } from 'antd';import PropTypes from 'prop-types';import { useSelector, useDispatch } from 'react-redux';import { FOLLOW_REQUEST, UNFOLLOW_REQUEST } from '../reduces/user';const FollowButton = ({ post }) => { const dispatch = useDispatch(); const { me, followLoading, unfollowLoading } = useSelector((state) => state.user); const isFollowing = me?.Followings.find((v) => v.id === post.User.id); // 고차함수, 클로저, 스프레드 문법//method const onClickButton = useCallback(() => { if (isFollowing) { dispatch({ type: UNFOLLOW_REQUEST, data: post.User.id, }); } else { dispatch({ type: FOLLOW_REQUEST, data: post.User.id, }); } }, [isFollowing]);// console.log(JSON.stringify(isFollowing)+"확인 "); // if (post.User.nickname === me.nickname) { // return null; // } if(post.User.id === me.id) { return null; } return ( Button loading={followLoading || unfollowLoading} onClick={onClickButton}> {isFollowing ? '언팔로우' : '팔로우'} Button> );};FollowButton.propTypes = { post: PropTypes.object.isRequired,};export default FollowButton;
- 0
- 2
- 236
질문&답변
2022.02.11
에러가 납니다...ㅠㅠ
AppLayout.js 에서 props 로 받는 children 말씀하시는거죠? 그거 있어요... props 명을 바꿔서도해봤는데 그대로 저렇게 뜹니다.. dispatch login and logout - 실행되는거확인하고 그 다음 강의 devtools 로 넘어가면서 서버 종료하고 devtools import 받아오고 따라치고 확인하려고 다시 npm run dev 를 쳤는데 저 상태에요 그래서 devtools 그 부분이 문젠가해서 주석처리하고 다시해봐도 똑같이 뜨네요.. 분명 그전에 usestate 를 redux useSelector dispatch로 바꿔서 로그인 로그아웃 확인했을땐 됐었던거같은데 그상태로 다시 돌렸는데 안되네요... 갑자기 왜이러는지 모르겠네요... .. 저 오류에 대한 문구를 복붙해서 구글링 긁어도 잘 못찾겠네요... localhost/:1 GET http://localhost:3000/ 500 (Internal Server Error) Uncaught at AppContainer at processChild at resolve at ReactDOMServerRenderer.render at ReactDOMServerRenderer.read at Object.renderToString at Object.renderPage at Object.defaultGetInitialProps at Function.getInitialProps at Object.loadGetInitialProps
- 0
- 2
- 183