Front-end/React
리액트에서 checkbox 오류 해결하기
개발중인제이
2023. 12. 28. 23:53

🚨 에러 발생
리액트에서 input type 체크박스를 사용하던 중에 아래와 같은 에러가 발생했다.
Warning: You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.
해석해보면 checked 속성을 사용하여 값을 지정하지만 해당 값을 변경할 때 처리할 onChange 핸들러가 없어 오류가 난다는 것이다. 따라서 `defaultChecked`를 사용하거나 `onChange` 혹은 `readOnly`를 추가하라는 것이다.
💡 에러 해결
<input type="checkbox" checked={isDone} readOnly />
일단은 코드에 readOnly 를 추가하는 것으로 해결했다. (이후에 onChange를 사용해 주는것으로 해결함)
✔️ 내 코드에서 났던 에러처럼 checked 속성에 변경할 핸들러가 없는 경우에도 에러가 나지만 onClick 과 checked 속성을 동시에 사용할 때도 비슷한 에러가 나는 경우가 있으니 그런 경우 onClick 대신 onChange를 사용하는 것으로 해결할 수 있다.