본문으로 바로가기

A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component

 

 

[에러 원인]

 input 태그의 value가 undefined 값이 들어갈 수도 있으면 발생하는 에러입니다. uncontrolled input이었다가 controlled input으로 바뀌면서 발생한 것입니다. 즉, 한마디로 초기값이 undefined였다가 렌더링 후에 값이 들어와 바뀌면서 발생한 에러입니다.

return(
    <input name="name" value={undefind}/>
)

 

 

[해결 방법]

('')공백을 줘서 controlled input의 범주에 포함시켜주시면 됩니다.

return(
    <input name="name" value={undefind || ''}/>
)