State (React native)

SallyJ ㅣ 2022. 9. 30. 17:03

state 는 component 에서 렌더링 되는 데이터를 담고 유지/관리하는 자바스크립트 객체인데,

state 값에 따라 화면에 보여지는 output이 달라진다.

class component 안에서 사용 가능하고, 함수 component를 정의했다면 state의 활용은 불가능하고

state는 render() 함수 바깥에서 정의가 된다.

import React, { Component } from 'react';
import {View, Text, StyleSheet} from 'react-native';

class App extends Component {

  state = {
    sampleText: 'Hello world~!!',
    sampleBoolean: false,
    sampleNum: 1
  }

  inputText = () => (
    this.state.sampleBoolean ?
    <Text>sampleBoolean is true</Text>
    :
    <Text>sampleBoolean is false</Text>
  )

  changeState = () => {
    if(this.state.sampleBoolean == false) {
      this.setState({
        sampleText: 'Text Changed!!!',
        sampleBoolean: true
      })
    } else {
      this.setState({
        sampleText: 'Hello world~!!',
        sampleBoolean: false
      })
    }
  }

  onAdd = () => {
    this.setState(prevState => {
      return {
        sampleNum: prevState.sampleNum +1
      }
    })
  }

  render() {
    return (
      <View style ={styles.backgroud}>
        <Text>Hello World!{"\n"}{this.state.sampleText}</Text>
        {this.inputText()}
        <Text onPress={this.changeState}>{this.state.sampleText}</Text>
        <Text onPress={this.onAdd}>{this.state.sampleNum}</Text>
      </View>
    )
  }
}

const styles = StyleSheet.create({
  backgroud : {
    flex: 1,
    backgroundColor: '#ffffff',
    alignItems: 'center',
    justifyContent: 'center'
  }
})

export default App;

 

'React Native' 카테고리의 다른 글

Props (React native)  (0) 2022.09.30
class (react native)  (1) 2022.09.30
Arrow function (react native)  (0) 2022.09.30
rest operator, spread operator (react native)  (1) 2022.09.29
for ... in, for ... of 반복문 사용방법(react native)  (0) 2022.09.29