变量不会在fetch函数内设置

问题描述 投票:-1回答:1

我试图通过“var result”将login.php的文本内容打印到屏幕中,但是fetch函数不会改变“var result”的值。如何设置获取函数输出的结果值?

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<{}>  {
	render() {
		login();
		return (
			<View style={styles.container}>
				<Logo/>
				<Form/>
				<Text>
					  {result}
				</Text>
				<Text>
				</Text></View>
		);
	}
}

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

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


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

这也不起作用,使用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<{}>  {
	constructor(){
		super();
		this.state = {
			data:'NoData',
		}
	}

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

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

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


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

我是否以错误的方式使用setState?在此先感谢您的帮助。

javascript react-native fetch var assign
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.