React-Native

React-Native State

김태웜 2021. 1. 12. 17:41
import React, {Component} from 'react';
import {View, Text, Button, StyleSheet, ScrollView} from 'react-native';
 
export default class App extends Component{
 
    state = {data: "초기값"};//data의 초기값을 "초기값"으로 설정
    render(){
      const {data} = this.state;
        return(
            <View style={{flex:1, padding:16}}>
                <Button title="fetch data from network" onPress={this.fetchData}></Button>
                <ScrollView style={styles.scroll}>
                    <Text style={styles.text}>{data}</Text>//{변수}이런식으로 state값을 가져옴 
                </ScrollView>
            </View>
        );
    }//render method ..
 
    // network 작업을 하는 메소드
    fetchData=()=>{
        var request = new XMLHttpRequest();
      request.onreadystatechange = (e) =>{
        if(request.readyState !== 4){
          return;
        }
        if(request.status ===200){
          console.log('success',request.responseText);
          this.setState({//state 안에 있는 변수의 값을 수정해줌
            data: request.responseText //data값이 request.responseText 값으로 들어가게된다
          })
        }else{
          console.warn('error');
        }
      };
      request.open('GET','API URL 주소');
      request.send();
    }// fetchDat method..
 
}//Main class..
 
const styles= StyleSheet.create({
    scroll:{marginTop:16, backgroundColor:'gray'},
    text:{padding:8, color:'white'}, 
});

Fetch를 사용하여 Api의 값을 불러오고 불러오게되면 state.data에 값을 넣어준다

스크롤뷰에 Text는 data값(data값이 Api값으로 바꼈을때 바로 바뀜)

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

React-Native 화면이동3  (0) 2021.01.28
React-Native 화면전환2  (0) 2021.01.26
React-Native CSS  (0) 2021.01.13
React-Native 화면전환  (0) 2021.01.08
React-Native 버튼클릭이벤트  (0) 2021.01.05