개발자

리액트 책을 보면서 공부중인데 아래의 코드가 제대로 작동을 않합니다

2023년 11월 14일조회 79

import { useState } from "react"; type CounterProps = { initialValue: number; }; const Counter = (props: CounterProps) => { const { initialValue } = props; // 계정을 유지하는 하나의 상태를 useState()로 선언한다. 인수에는 초깃값을 지정한다. // count는 현재 상태, setCount는 상태를 업데이트하는 함수다。 const [count, setCount] = useState(initialValue); return ( <div> <p>Count: {count}</p> {/* setCount를 호출해서 상태를 업데이트한다 */} <button onClick={() => setCount(count - 1)}>-</button> <button onClick={() => setCount((prevCount) => prevCount + 1)}>+</button> </div> ); }; export default Counter; 책에 있는거 그대로 코딩 했는데 Property 'initialValue' is missing in type '{}' but required in type 'CounterProps' 이런 에러가 발생해요 왜 그런걸까요

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 1

김주호님의 프로필 사진

<Counter initialValue={5}/>처럼 initialValue를 포함하지 않고 <Counter /> 와 같이 작성하신 부분이 있나요? 작성하신 const Counter = (props: CounterProps) => { 는 이 함수가 props라는 인자를 받는데 그 인자의 타입이 CounterProps라는 뜻이고 type CounterProps = { initialValue: number; }; 라는 코드는 CounterProps 타입 내부에 있는 initialValue가 숫자라는 뜻입니다. 지금 당장은 <Counter /> 라고 호출한 것이 Counter({})와 같다고 보시면 되고 그렇다면 initialValue가 number라고 생각하는 함수 입장에서 initialValue가 number가 아닌, 심지어 미지정된 상태에서 왔다고 보시면됩니다. 그래서 <Counter initialValue={5}/> 즉슨 Counter({initialValue: 5})로 호출해야 함수가 원하는 형태로 인자가 넘어 가는것이죠

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!