dydcodydco0983
@dydcodydco0983
Reviews Written
2
Average Rating
5.0
Posts
Q&A
ํ๋ก์ 3๋ช ์ฉ ๋ถ๋ฌ์ค๊ณ ๋ฐ์ดํฐ ํฉ์ณ์ฃผ๋๊ฑธ๋ก ๋ฐ๊พธ๊ณ ์๋ฒ์์ฒญ์ ๋ฌดํ์ผ๋กํ๊ณ ์์ต๋๋ค.
๋ค์ ์ฝ๋๋ฅผ ๋ด๋ณด๋๊น, ํธ์ถํ๊ณ onSuccess์ state๋ฅผ ๋ฐ๊ฟ์ฃผ๋ฉด ์ปดํฌ๋ํธ๋ฅผ ๋ฆฌ๋ก๋ํด์ฃผ๊ธฐ ๋๋ฌธ์ ๋ฌดํ์ผ๋ก ํธ์ถํ๊ณ ์๋๊ฒ ๊ฐ์ต๋๋ค. ํน์ ๋ค๋ฅธ ์ข์ ๋ฐฉ๋ฒ์ด ์๋ค๋ฉด ์ถ์ฒํด์ฃผ์ค ์ ์์๊น์? useSWRInfinite๋ฅผ ์ฐ๋๊ฒ ์ข์๋ฐฉ๋ฒ์ผ์ง ๊ถ๊ธํฉ๋๋ค.
- 0
- 2
- 214
Q&A
์ผ์ 4 ๊ฒ์๋ฌผ ๋ถ๋ฌ์ค๊ธฐ postcard.js์์ post.User.nickname[0]์๋ฌ
ํน์๋ํด์postcard.js์ ์ ์ฒด์ฝ๋๋์๋์ ๊ฐ์ต๋๋ค.import { Card, Popover, Button, Avatar, List } from "antd"; import { RetweetOutlined, HeartOutlined, HeartTwoTone, MessageOutlined, EllipsisOutlined } from "@ant-design/icons"; import { useState, useCallback } from "react"; import { useDispatch, useSelector } from "react-redux"; import PropTypes from "prop-types"; import { removePostRequestAction } from "../reducers/post"; import PostImages from "./PostImages"; import CommentForm from "./CommentForm"; import PostCardContent from "./PostCardContent"; import Followbutton from "./FollowButton"; const PostCard = ({ post }) => { // const { me: {id} } = useSelector((state) => state.user); // const id = me && me.id; // const id = me?.id; // ์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์ const id = useSelector((state) => state.user.me?.id); const { removePostLoading } = useSelector((state) => state.post); const dispatch = useDispatch(); const [liked, setLiked] = useState(false); const [commentFormOpend, setCommentFormOpend] = useState(false); const onToggleLike = useCallback(() => { setLiked((prevLiked) => !prevLiked); }, []); const onToggleComment = useCallback(() => { setCommentFormOpend((prev) => !prev); }, []); const onRemovePost = useCallback(() => { dispatch(removePostRequestAction({ id: post.id })); }, []); return ( } actions={[ // ๋ฐฐ์ด์์ ๋ค์ด๊ฐ๋ ๊ฒ๋ค์ ๋ค key๋ฅผ ๋ฃ์ด์ค์ผ ํ๋ค. , liked ? : , , {id && post.User?.id === id ? ( ์์ ์ญ์ ) : ( ์ ๊ณ )} } > , ]} extra={id && } > {post.User?.nickname[0]}} title={post.User?.nickname} description={} /> {commentFormOpend && ( {/* ๊ฒ์๊ธ์ ์์ด๋ ์ํด์ post ๋๊ฒจ์ค */} ( {item.User?.nickname[0]}} description={item.content} /> )} /> )} ); }; PostCard.propTypes = { post: PropTypes.shape({ id: PropTypes.number, User: PropTypes.object, content: PropTypes.string, createdAt: PropTypes.string, Comments: PropTypes.arrayOf(PropTypes.object), Images: PropTypes.arrayOf(PropTypes.object), }).isRequired, }; export default PostCard;
- 0
- 3
- 309
Q&A
toolkit, saga๋ฅผ ์ฌ์ฉํ๋๋ฐ saga์์ ๋ก๊ทธ์ธ์ ๋ณด ๋ฐ์๋ state๊ฐ ์ด์ state๊ฐ ์๋๋ผ proxy๋ฐ์ดํฐ๊ฐ ๋์ต๋๋ค.
๊ป๋ค ์ผฐ๋ค ๊ฒ์ํด๋ณด๋function* login(action) { try { // console.log("saga login"); // console.log(action); // const result = yield call(loginAPI, action.data); yield delay(1000); yield put(loginSuccessAction(action.payload)); } catch (err) { yield put({ type: loginFailureAction, // data: err.response.data, }); } }์ด๋ฐ์์ผ๋กํธ์ถํด์ฃผ๋ฉด ์ ๋๋๊ฒ ๊ฐ์ต๋๋ค.loginSuccessAction(action.payload)reducer์์๋ ๋ฐ์ดํฐ ๋ฐ์๋ proxy๋ก ๋ณด์ฌ๋ ๋๋๊ฒ ๊ฐ์ต๋๋ค.ํ ์ฝ์ง์๋ค์. ํน์๋ ํ๋ ธ๊ฑฐ๋ ์์ ํ ๊ฑฐ์์ผ๋ฉด ์๋ ค์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค ; D
- 0
- 2
- 270
Q&A
antd ui๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋๊น Cannot use import statement outside a module ์๋ฌ๊ฐ ๋์ต๋๋ค.
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค! :D
- 0
- 3
- 801
Q&A
์ด๋ ์๊ฐ๋ถํฐ vs์ฝ๋์์ ์ ์ฅํ ๋ด์ฉ์ด ๋ธ๋ผ์ฐ์ ์์ ์ ์ฉ์ด ์๋๊ณ ์์ต๋๋ค.
๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค.์ฌ๊ธฐ์ ๊ธฐ ๋ค์ ธ๋ณด๋ค๊ฐ ์๋ผ์์๋ก์ด ํ๋ก์ ํธ๋ก ๋ง๋ค์ด์ ํด๋ณด๋์๋๋๊ฒ ๊ฐ์ต๋๋ค. ใ ์์ผ๋ก๋ ๊ฐ์ ์ด์ฌํ ๋ณด๋ฉด์ ๋ ๋ฐฐ์ฐ๊ฒ ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค.
- 0
- 3
- 357




