๐ setState
setState()
๋ฉ์๋๋ ์ปดํฌ๋ํธ์ state ๊ฐ์ฒด์ ๋ํ ์
๋ฐ์ดํธ๋ฅผ ์คํํฉ๋๋ค. state๊ฐ ๋ณ๊ฒฝ๋๋ฉด, ์ปดํฌ๋ํธ๋ ๋ฆฌ๋ ๋๋ง๋ฉ๋๋ค.
1
| setState(updater[, callback])
|
updater์ ์ปดํฌ๋ํธ์ state ๋ณ๊ฒฝ์ฌํญ์ ์ธ์๋ก ๋๊ฒจ์ฃผ๊ณ React์๊ฒ ํด๋น ์ปดํฌ๋ํธ๋ฅผ ์ฌ๋ ๋๋งํด์ผํ๋ค๊ณ ์์ฒญ์ ๋ณด๋ด๋ ๋ฉ์๋์ด๋ค.
setState()
ํธ์ถ์ ๋น๋๊ธฐ์ ์ผ๋ก ์ด๋ค์ง๋ค.
- ์ฑ๋ฅ ํฅ์์ ์ํด ์ฆ๊ฐ์ ์ผ๋ก ์ฌ๋ ๋๋ง์ ๋ฐ์์ํค์ง ์๋๋ค.
- ์ฌ๋ฌ ๋ณ๊ฒฝ ์ฌํญ์ ์ผ๊ด์ ์ผ๋ก ๊ฐฑ์ ํ๊ฑฐ๋ ๋์ค์ ๋ฏธ๋ฃฐ ์ ์๋ค. ๋๋ฌธ์
setState()
ํธ์ถํ์๋ง์ this.state
์ ์ ๊ทผํ๋ ๊ฒ์ ๋ฌธ์ ๊ฐ ๋ ์ ์๋ค.
- ๋์
componentDidUpdate()
๋๋ setState(updater, callback)
์ฒ๋ผ 2๋ฒ์งธ ์ธ์๋ก ์ฝ๋ฐฑํจ์๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
1 2 3 4 5 6 7 8 9 10
| this.state = { message: "", };
this.setState( { message: "์ํ ๋ณ๊ฒฝ" }, () => console.log("callback: ", this.state.message) );
console.log(this.state.message);
|
- ์์ง ๋ ๋๋ง์ด ๋ฐ์ํ์ง ์์๊ธฐ ๋๋ฌธ์
this.state.message
์ ๊ฐ์ด ๊ฐฑ์ ๋์ง ์์๋ค.
๐ 2022.11.12 ์ถ๊ฐ
setState()
์ฒซ๋ฒ์งธ ์ธ์๋ก ์ฝ๋ฐฑํจ์ ์ฌ ๋
1 2 3 4 5 6 7 8 9 10 11 12 13
| export class BinaryCalcurator extends Component { state = { buttonStates: Array(this.props.numberOfButtons).fill(false), };
handleToggleButtonContent = (index) => { this.setState(({ buttonStates }) => ({ buttonStates: buttonStates.map((buttonState, idx) => idx === index ? !buttonState : buttonState ), })); }; }
|
- ์ฝ๋ฐฑํจ์๋ ์ด์ ์ํ๋ฅผ ๋ฐ์์ ์ํ ๋ณ๊ฒฝ์ ์์ฒญํ๋ค.