--- title: Component State localeTitle: Состояние компонента --- ## Состояние компонента В компонентах `Class` существует способ хранения и управления состоянием, встроенным в React Native. ```javascript class App extends Component { constructor () { super(); this.state = { counter: 0 }; } incrementCount () { this.setState({ counter: this.state.counter + 1 }); } decrementCount () { this.setState({ counter: this.state.counter - 1 }); } render () { return ( Count: {this.state.counter} ); } } ``` Состояние похоже на реквизит, но оно является частным и полностью контролируется компонентом. Здесь метод `constructor()` вызывает конструктор родительского класса с `super();` - **`Component`** является родительским классом `App` потому что мы используем ключевое слово `extends` . Метод `constructor()` также инициализирует объект состояния компонента: ``` this.state = { counter: 0 }; ``` Состояние может отображаться внутри компонента: ```js {this.state.counter} ``` Или обновляется по телефону: ```js this.setState({}); ``` **Примечание.** Помимо своего первоначального создания в методе `constructor()` вашего компонента, вы никогда не должны напрямую изменять состояние компонента с помощью `this.state =` . Вы должны использовать `this.setState` как видно из приведенных выше функций `incrementCount` и `decrementCount` . `onPress` увеличивается и уменьшается, вызывая функции, переданные обработчикам `onPress` точно так же, как если бы вы вызвали обработчик кликов из JavaScript в Интернете. _ASIDE: В первом примере `