ํฐ์คํ ๋ฆฌ ๋ทฐ
Before ์ฝ๋
<form onKeyUp={this.goPath} className="login-input-container">
<input
type="text"
className="login-input input-id"
placeholder="์ฌ์ฉ์ ์ด๋ฉ์ผ"
defaultValue={id}
onChange={this.checkVal}
/>
<input
type="password"
className="login-input input-password"
placeholder="์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ"
defaultValue={pwd}
onChange={this.checkVal}
/>
</form>
๋ค์์ ๋ก๊ทธ์ธ ์ปดํฌ๋ํธ์ JSX ์ฝ๋์ด๋ค.
๋ก๊ทธ์ธ ์๋ณ์ ์ํด id์ pwd์ value ๊ฐ์ ์๋ณํด์ฃผ๊ธฐ ์ํด state์ ๊ฐ์ ์ ์ฅํ๋ ๋ฉ์๋์ธ checkVal๋ฅผ onChange ์ด๋ฒคํธ์ ๋ฐ์ธ๋ฉํด์ฃผ์๋ค.
๋ ๊ฐ์ ๋ค๋ฅธ Input value๋ฅผ ํ๋์ ํจ์๋ก ๊ด๋ฆฌํด์ฃผ๋ค ๋ณด๋, ์๋์ ๊ฐ์ด ๋๊ฐ์ ์ฝ๋ ๋ฐ๋ณต๋๋ฉฐ ๋ถํ์ํ ์กฐ๊ฑด๋ฌธ์ด ์ฌ์ฉ๋์ด์ก๋ค.
checkVal = event => {
let { value } = event.target;
if(event.target.className === 'login-form') {
this.setState({
login : value,
});
} else {
this.setState({
pwd : value,
});
}
};
After ์ฝ๋
์์ ๋ด์ฉ์ ์์ ํด์ฃผ๊ธฐ ์ํด Input ์์ฑ ์ค name์ ์ฌ์ฉํ๊ธฐ๋ก ํ์๋ค.
๊ฐ Input ํ๊ทธ์ ๊ณ ์ ํ ์ด๋ฆ ๊ฐ์ ๋ถ์ฌํด ์ค ๋ค์ ํด๋น ์ด๋ฆ ๊ฐ์ ์ฌ์ฉํ์ฌ state key์ ์ ๊ทผํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ๋ค์๊ณผ ๊น์ด ๋ฆฌํฉํ ๋งํด์ฃผ์๋ค.
<form onKeyUp={this.goPath} className="login-input-container">
<input
type="text"
className="login-input input-id"
placeholder="์ฌ์ฉ์ ์ด๋ฉ์ผ"
defaultValue={id}
name="id" // ๊ณ ์ ์ด๋ฆ ๊ฐ id ๋ถ์ฌ
onChange={this.checkVal}
/>
<input
type="password"
className="login-input input-password"
placeholder="์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ"
defaultValue={pwd}
name="pwd" // ๊ณ ์ ์ด๋ฆ ๊ฐ pwd ๋ถ์ฌ
onChange={this.checkVal}
/>
</form>
checkVal = event => {
let { value, name } = event.target;
this.setState({
[name]: value, // ๊ณ ์ ์ด๋ฆ ๊ฐ์ผ๋ก state ๊ฐ ์ง์
});
};
'React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ