2017-12-19 4 views
-1

login.php의 텍스트 내용을 "var result"를 통해 화면에 인쇄하려하지만 가져 오기 기능은 "var result"값을 변경하지 않습니다. 가져 오기 기능의 출력 결과 값을 어떻게 설정할 수 있습니까? 내가 잘못된 방법으로 setState를 사용하고변수가 가져 오기 기능 내에서 설정되지 않습니다

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

 
import Logo from '../components/Logo'; 
 
import Form from '../components/Form'; 
 
import loginapi from '../apis/loginapi'; 
 

 
export default class Login extends Component<{}> { 
 
\t constructor(){ 
 
\t \t super(); 
 
\t \t this.state = { 
 
\t \t \t data:'NoData', 
 
\t \t } 
 
\t } 
 

 
\t render() { 
 
\t \t login(); 
 
\t \t return (
 
\t \t \t <View style={styles.container}> 
 
\t \t \t \t <Logo/> 
 
\t \t \t \t <Form/> 
 
\t \t \t \t \t <Text> 
 
\t \t \t \t \t \t {this.state.data} 
 
\t \t \t \t \t </Text> 
 
\t \t \t </View> 
 
\t \t); 
 
\t } 
 
} 
 

 
function login() { 
 
\t \t fetch('https://www.skateandstrike.com/loginsv/login.php').then(data => this.setState(data)); 
 
\t } 
 

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

 

 
function myFunction() { 
 
    
 
this.setState({ showLoading: false }); 
 
}

:

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

 
import Logo from '../components/Logo'; 
 
import Form from '../components/Form'; 
 
import loginapi from '../apis/loginapi'; 
 

 
var result='noresult'; 
 

 
export default class Login extends Component<{}> { 
 
\t render() { 
 
\t \t login(); 
 
\t \t return (
 
\t \t \t <View style={styles.container}> 
 
\t \t \t \t <Logo/> 
 
\t \t \t \t <Form/> 
 
\t \t \t \t <Text> 
 
\t \t \t \t \t {result} 
 
\t \t \t \t </Text> 
 
\t \t \t \t <Text> 
 
\t \t \t \t </Text></View> 
 
\t \t); 
 
\t } 
 
} 
 

 
function login() { 
 
\t \t result = fetch('https://www.skateandstrike.com/loginsv/login.php').then((text) => {return text;}); 
 
\t } 
 

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

 

 
function myFunction() { 
 
    
 
this.setState({ showLoading: false }); 
 
}

는 setState를를 사용하여도 작동하지? 귀하의 도움에 미리 감사드립니다. 페치 API를 사용하는 경우

+0

왜 'state'가 아닌 전역 변수를 사용합니까? – Val

+0

나는 초보자이므로 차이점에 대해서는 전혀 모른다. –

+0

StackOverflow에서 질문하기 전에 최소한 기본 섹션을 제외한 모든 문서를 읽는 것이 좋습니다. (내 downvote btw) https://facebook.github.io/react-native/docs/state.html – Val

답변

1

, ID는 다음 필요하면 상태를 설정하면

당신이 그것을 구문 분석, 약속을 사용하는 것이 좋습니다.

반응은 상태/소품 변경시 다시 렌더링됩니다.

fetch (url) 
.then(data => data.json()) if needed 
.then(data => this.setState(data)) 

생성자에 상태를 설정 기억이 101 BTW

빠른 도움을 반응이다.

+0

대단히 감사합니다.하지만이 역시 할 수 없었습니다. 내 질문에 새 코드를 추가했습니다. 뭔가 잘못 됐는지 확인해주세요. –

관련 문제