Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

나 개발자 할래요

2024.08.13 본문

개발자 되는 법.../TIL...

2024.08.13

개발_자 2024. 8. 13. 19:46

메달 컴포넌트를 만들어

메달 색(금, 은, 동)에 따라 값을 받게끔 구현하고 싶었습니다..

 

동적 속성 이름 (Computed Property Names)

객체 리터럴에서 속성 이름을 변수나 표현식으로 동적으로 지정할 수 있습니다.

 

const key = 'dynamicKey';
const obj = {
    [key]: 'value'
};
console.log(obj.dynamicKey); //'value'

 

`[key]`는 변수 `key`의 값을 속성 이름으로 사용한다는 의미입니다.

결과적으로 `obj` 객체는 `dynamicKey`라는 속성을 가지게 됩니다.

 

const Medal = (props) => {
    const { color, country, setCountry } = props;
    const title = {
        gold: "금메달",
        silver: "은메달",
        bronze: "동메달",
    };

    const inputHandler = (e) => {
        setCountry({
            ...country,
            [color]: Number(e.target.value),
        });
    };

    return (
        <p>
            {title[color]}
            <input
                type="number"
                placeholder="0"
                value={country[color]}
                onChange={inputHandler}
            />
        </p>
    );
};

`color`는 "gold", "silver", "bronze" 중 하나입니다.

`country` 객체는 `{ name: "미국", gold: 2, silver: 3, bornze: 1 }` 와 같이 현재 국가와 관련된 메달 수를 포함하고 있습니다.

"silver" 입력 필드에 `5`를 입력했다 가정하면 `inputHandler` 함수가 호출되며 `setCountry`가 업데이트된 객체를 설정하여 `country`상태를 업데이트합니다. → `[color]`는 "silver" 이므로 `{ ...country, silver: 5 }`

'개발자 되는 법... > TIL...' 카테고리의 다른 글

2024.08.14  (0) 2024.08.14
2024.08.14  (0) 2024.08.14
2024.08.09  (0) 2024.08.09
2024.08.09  (0) 2024.08.09
2024.08.09  (0) 2024.08.09