🍊 金黄パーム05:@感情/スタイル伝達Props
13190 ワード
進捗
edit-profile.tsx
프로필 수정
ボタンをクリックすると表示されるプロファイルが変更add-product.tsx
상품 등록
ボタンをクリックして表示される商品登録ページpost.tsx
upload.tsx
게시글 작성
表示可能な投稿をクリックしてページを作成list-chat.tsx
채팅
表示可能なチャットリストページをクリックUserAvatarコンポーネント
=>多くの場所でプロファイル画像が使用され、画像サイズが異なります.
=>画像サイズはそれぞれ42インチ42,50インチ50,110インチ110インチである.
// UserAvatar.tsx
import styled from '@emotion/styled';
import { COLORS } from '../constants';
type AvatarProps = {
size: string;
padding: string;
};
export const UserAvatar = ({ size, padding }: AvatarProps) => {
return (
<ImgProfile
size={size}
padding={padding}
src="/default-profile-w.png"
alt="사용자 프로필 이미지"
/>
);
};
const ImgProfile = styled.img<AvatarProps>`
width: ${(props) => props.size};
height: ${(props) => props.size};
padding: ${(props) => props.padding};
border-radius: 50%;
background-color: ${COLORS.light_gray};
`;
size
およびpadding
値を指定しておくと、適用エラーが退屈に発見されなくなります…=>修正が必要です^^
=>変更されました!
<UserAvatar size="30px" padding="6px" />
<UserAvatar size="40px" padding="5px" />
<UserAvatar size="90px" padding="10px" />
コードを変更!
constants
カタログのindex.ts
エUSER_AVATAR
追加export const USER_AVATAR = {
xs: {
size: '24px',
padding: '6px',
},
sm: {
size: '30px',
padding: '6px',
},
md: {
size: '40px',
padding: '5px',
},
lg: {
size: '90px',
padding: '10px',
},
};
=>これまでのコードでは、直接すべて
UserAvata
素子のsize
およびpadding
入力値=>コードを変更した後、constanstに寸法ごとに値を保存してインポートします.
=>エラーを減らし、簡単に値を変更
<UserAvatar size={USER_AVATAR.xs.size} padding={USER_AVATAR.xs.padding} />
<UserAvatar size={USER_AVATAR.sm.size} padding={USER_AVATAR.sm.padding} />
<UserAvatar size={USER_AVATAR.md.size} padding={USER_AVATAR.md.padding} />
<UserAvatar size={USER_AVATAR.lg.size} padding={USER_AVATAR.lg.padding} />
コメントリンク
@emotion/styled - Passing Props
=>propsの伝え方はGoogle化されていますが、最終的には公式ドキュメントを見たほうがいいです!(喜び)
の最後の部分
最初はどの部分をコンポーネントに変えるべきか分かりませんでしたが、コードを書くと重複する部分が見えます.
=>次に構成部品を作成し続けます...
=>コードが整理されているのを見て、私はとても嬉しいです.
Reference
この問題について(🍊 金黄パーム05:@感情/スタイル伝達Props), 我々は、より多くの情報をここで見つけました https://velog.io/@qhflrnfl4324/낑깡팜05テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol