import { Component } from 'react';
class Counter extends Component {
state = {
number1: 5,
number2: 10,
};
render() {
const { number1, number2 } = this.state;
return (
<div>
<h1>{number1}</h1>
<h1>{number2}</h1>
<button
className="removeButton"
onClick={() => {
this.setState({ number2: number2 - 1 }); // 1
}}
>
1씩 감소하는 버튼
</button>
</div>
);
}
}
export default Counter;
즉 state 객체에서 바꾸고 싶은 key-value만 setState의 인자로 넘겨준다.
import React, { useState } from 'react';
const Counter = () => {
const [nums, setNums] = useState({
number1: 5,
number2: 10,
});
const { number1, number2 } = nums;
return (
<div>
<h1>{number1}</h1>
<h1>{number2}</h1>
<button
className="removeButton"
onClick={() => {
setNums({ number2: number2 - 1 });
}}
>
1씩 감소하는 버튼
</button>
</div>
);
};
export default Counter;
버튼 클릭 후
따라서 다음과 같이 spread operator를 사용해서 set을 하자
onClick={() => {
setNums({ ...nums, number2: number2 - 1 });
}}
ㅎㅇ