反应原生中的 Ajax 调用无法找到变量:res

问题描述

我正在尝试向我的 node.js 服务器发出我的本机应用程序的 ajax 请求,但是当我在博览会上加载应用程序时,它给了我一个错误“找不到变量:res”。

import React from 'react'
    import {
        ScrollView,StyleSheet,View,} from 'react-native';
    import Card from '../components/Card'
    import CardList from '../components/CardList'
    
    export default class HomeScreen extends React.Component {
    
    
        constructor(props) {
            super(props);
            this.state = {
                error: null,isLoaded: false,items: []
            };
        }
    
        static navigationoptions = {
            title: 'Menu',};
        componentDidMount() {
            fetch("https://127.0.0.1:4001/menu")
                .then(res => res.json())
                .then(
                    (result) => {
                        this.setState({
                            isLoaded: true,items: result.items
                        });
                    },(error) => {
                        this.setState({
                            isLoaded: true,error
                        });
                    }
                )
        }
    
    
        render() {
            if (res) {
                return <View><Text>Error: {error.message}</Text></View>;
            } else if (!isLoaded) {
                return <View><Text>Loading...</Text></View>;
            } else {
                return (
                    <View style={styles.container}>
                        <ScrollView style={styles.scrollViewContainer}>
                            <View >
                                <CardList title={'Pizzas'}>
                                    {pizza.map(pizza => (<Card style={styles.card} name={pizza.name} description={pizza.decs} />))}
                                </CardList>
                                <CardList title={'others'}>
                                    <Card style={styles.card} />
                                    <Card style={styles.card} />
                                    <Card style={styles.card} />
                                    <Card style={styles.card} />
                                    <Card style={styles.card} />
                                    <Card style={styles.card} />
                                    <Card style={styles.card} />
                                </CardList>
    
                            </View>
                        </ScrollView>
                        <View style={styles.headerContainer}></View>
                    </View>
                )
            }
        }
    }

我已经在 postman 中尝试过 URL 并且运行良好

enter image description here

我大部分是从https://reactjs.org/docs/faq-ajax.html

复制的

任何帮助,提前致谢

解决方法

发生错误是因为您使用了未声明的 res 变量。您需要在 if 块内使用 this.state.error 来代替渲染内的 res。

你还需要用 this.state.items 来换披萨