Intro
์๋ ํ์ธ์. React์์ MUI์ TextField๋ฅผ ์ฌ์ฉํ๋ ๋์ค ์๋์ ๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ์์ต๋๋ค.
Input elements should have autocomplete attributes (suggested: "current-password")
<TextField
value={value}
onBlur={onBlur}
label='์ฌ์ฉ์ ๊ณ์ (์์ด๋)'
placeholder='์์ด๋๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์'
onChange={onChange}
error={Boolean(errors.userId)}
type={'text'}
color='secondary'
variant='standard'
autoComplete='on'
/>
How to solve problem
ํด๋น ์๋ฌ๊ฐ ๋ฐ์ํ ์ด์ ๋ autocomplete ์์ฑ์ ๋ช ์ํ์ง ์์์์ ๋๋ค. autoComplete ์์ฑ์ด๋ ํผ ํ๋์ ๋ธ๋ผ์ฐ์ ์ ์๋ ์์ฑ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ง ์ฌ๋ถ๋ฅผ ์ง์ ํฉ๋๋ค.
๋ธ๋ผ์ฐ์ ๋ ์ข ์ข ์ฌ์ฉ์๊ฐ ์ด์ ์ ์ ๋ ฅํ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ตํ๊ณ , ์ ์ฌํ ์ ๋ ฅ ํ๋๊ฐ ๋ํ๋ ๋ ์ด๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฌ์ฉ์๊ฐ ์ด์ ์ ์ ๋ ฅํ ์ด๋ฉ์ผ ์ฃผ์๋ ์ฌ์ฉ์ ์ด๋ฆ์ ๊ธฐ์ตํ์ฌ ๋ค์์ ํด๋น ํ๋์ ๋ค์ ์ ๋ ฅํ ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์๋์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค.
autoComplete ์์ฑ์ ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋ค์ ๊ฐ์ง ์ ์์ต๋๋ค:
- on: ๋ธ๋ผ์ฐ์ ์ ์๋ ์์ฑ ๊ธฐ๋ฅ์ ํ์ฑํํฉ๋๋ค.
- off: ๋ธ๋ผ์ฐ์ ์ ์๋ ์์ฑ ๊ธฐ๋ฅ์ ๋นํ์ฑํํฉ๋๋ค.
**autoComplete="off"**์ ์ค์ ํ๋ฉด ํด๋น ํผ ํ๋์ ๋ํ ์๋ ์์ฑ์ด ๋นํ์ฑํ๋ฉ๋๋ค. ์ด๋ ๋ณด์์์ ์ด์ ๋ก ๋น๋ฐ๋ฒํธ ์ ๋ ฅ ํ๋์ ๊ฐ์ด ๋ฏผ๊ฐํ ์ ๋ณด๋ฅผ ์ ๋ ฅ๋ฐ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ฌ์ฉ์์ ์ ๋ ฅ์ ์์ ํ ๋นํ์ฑํํ๊ณ ์ ํ ๋์๋ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. autoComplete ์์ฑ์ ํผ ํ๋๋ง๋ค ๊ฐ๋ณ์ ์ผ๋ก ์ค์ ํ ์ ์์ผ๋ฉฐ, ์ผ๋ฐ์ ์ผ๋ก ๋ฏผ๊ฐํ ์ ๋ณด๋ ์ฌ์ฉ์์ ์ ๋ ฅ์ ์ ์ดํ๊ณ ์ ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
<TextField
value={value}
onBlur={onBlur}
label='์ฌ์ฉ์ ๊ณ์ (์์ด๋)'
placeholder='์์ด๋๋ฅผ ์
๋ ฅํด ์ฃผ์ธ์'
onChange={onChange}
error={Boolean(errors.userId)}
type={'text'}
color='secondary'
variant='standard'
autoComplete='on'
/>
๋ค์๊ณผ ๊ฐ์ด TextFeild ํ๊ทธ์ autoComplete ์์ฑ์ ์ถ๊ฐํด์ฃผ๋ฉด ์๋ฌ๊ฐ ์ฌ๋ผ์ง๊ฒ ๋ฉ๋๋ค.
https://bobbyhadz.com/blog/input-elements-should-have-autocomplete-attributes