Stateって?
Stateって?
Reactのcomponentは状態を持つことができ、その内部の状態のことをStateと呼びます
propsは親->子に対し、stateは所持する内部でのみ利用されます。
また、propsは変更不可に対し、stateは変更することが可能となっています.
またクラスコンポーネントのみがstateを所持することができます。
import React, {Component} from 'react' import PropTypes from 'prop-types' const App = () => (<Counter></Counter>) class Counter extends Component { constructor(props) { super(props) this.state = {count: 0} } render() { return( <div>count: {this.state.count}</div> ) } }
stateの値を変更するとき
setStaet()を用いる、this.state.hoge=1などでもいいんじゃないかと思うかもしれないが、直接変更すると値は変わるが描画はされない、一方setStateでは変更して再描画も行ってくれる.
import React, {Component} from 'react' import PropTypes from 'prop-types' const App = () => (<Counter></Counter>) class Counter extends Component { constructor(props) { super(props) this.state = {count: 0} } handleAddCount = () => { this.setState({count: this.state.count + 1}) } handleSubCount = () => { this.setState({count: this.state.count - 1}) } render() { return( <React.Fragment> <div>count: {this.state.count}</div> <button onClick={this.handleAddCount}>+1</button> <button onClick={this.handleSubCount}>-1</button> </React.Fragment> ) } } export default App;