如何解决该错误? [类型错误:网络请求失败] 原生反应

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

Errore nella richiesta:, [TypeError: 网络请求失败]

在 Eventi.js:Eventi 中的 15:8

- ...来自框架内部的另外 8 个堆栈帧

我用过expo go。

我的js代码是这样的:

// Eventi.js
import React, { useState, useEffect } from 'react';
import { View, Text, Image, StyleSheet } from 'react-native';

const Eventi = () => {
  const [eventi, setEventi] = useState([]);

  useEffect(() => {
    const apiUrl = 'https://tuosito.altervista.org/api-eventi.php';

    fetch(apiUrl)
      .then(response => response.json())
      .then(data => setEventi(data))
      .catch(error => console.error('Errore nella richiesta:', error));
  }, []);

  return (
    <View style={styles.container}>
      <Text style={styles.eventiText}>Eventi a Torino</Text>
      <View style={styles.eventiContainer}>
        {eventi.map((evento, index) => (
          <View key={index} style={styles.eventoItem}>
            <Image source={{ uri: evento.immagine }} style={styles.eventoImage} />
            <Text>{evento.nome}</Text>
            <Text>{evento.data}</Text>
            <Text>{evento.descrizione}</Text>
            <Text>{evento.luogo}</Text>
            <Text>{evento.prenotazione}</Text>
          </View>
        ))}
      </View>
    </View>
  );
};

const styles = StyleSheet.create({
  container: {
    padding: 20,
  },
  eventiText: {
    fontSize: 16,
    fontWeight: 'bold',
  },
  eventiContainer: {
    flexDirection: 'row',
    flexWrap: 'wrap',
    justifyContent: 'space-between',
    marginTop: 10,
  },
  eventoItem: {
    width: '48%',
    marginBottom: 10,
    borderColor: 'black',
    borderWidth: 1,
    borderRadius: 5,
    padding: 10,
  },
  eventoImage: {
    width: '100%',
    height: 100,
    marginBottom: 10,
    borderRadius: 5,
  },
});

export default Eventi;

我是新来反应的,当我访问该页面时遇到这个问题。你能帮我个忙吗?昨天我就有这种感觉。难道是办公网络有一些限制?我还想知道当我在应用程序上填写表格时,就像我在 www.chesifastasera.com 网站上填写表格时,是否有可能当我按下发送按钮时,它会执行相同的操作并发送相同的数据我的网站会这样做,因此会收集数据,然后发送电子邮件并创建唯一的代码并将数据保存在数据库中。?

reactjs json react-native web-applications
1个回答
0
投票

第一个问题;

我无法访问您使用的API。

但是 API 可以使用您提供的链接。 https://www.chesifastasera.com/api-eventi.php

第二个问题;

由于安全漏洞,我不建议从您的应用程序连接数据库。

您可以使用 php api 从 React Native 应用程序进行发布。

您应该从应用程序填写表单并向 php 文件发送 POST 请求,然后使用 PHP 将数据插入数据库。您可以用相同的方式解决您的其他问题,例如发送电子邮件。

© www.soinside.com 2019 - 2024. All rights reserved.