【问题标题】:React Native Possible Unhandled Promise Rejection (id )React Native 可能出现未处理的 Promise Rejection (id)
【发布时间】:2021-10-12 10:03:53
【问题描述】:

我收到这样的错误:

可能的未处理承诺拒绝 (id:0)

号码id+1 就像每秒钟一样, 我不知道如何解决这个问题或为什么会发生这种情况 我的项目可以运行,但模拟器底部有一条消息说可能未处理的承诺拒绝

这是我的代码:

import React, { useState, useEffect } from 'react';
import { View, Text, Button, StyleSheet, TouchableOpacity, Image, SafeAreaView, ActivityIndicator } from 'react-native';
import { FlatList } from 'react-native-gesture-handler';
import NumberFormat from 'react-number-format';


const covidURL = 'https://covid19.ddc.moph.go.th/api/Cases/today-cases-all'

const HomeScreen = ({ navigation }) => {

    const [isLoading, setLoading] = useState(true);
    const [data, setData] = useState([]);

    useEffect(() => {
        fetch(covidURL)
            .then((response) => response.json())
            .then((json) => setData(json))
            .catch((error) => alert(error))
            .finally(setLoading(false))
            
    })

    return (
        <SafeAreaView style={styles.container}>
            <View style={styles.header}>
                <Text style={styles.headerText}>Home</Text>
            </View>

            <View style={styles.headSection}>
                <Text style={{ fontWeight: 'bold', fontSize: 24, }}>สถานการณ์ Covid-19</Text>
            </View>

            {isLoading ? (
                <ActivityIndicator />
            ) : (
                <FlatList
                    data={data}
                    keyExtractor={({ id }, index) => id}
                    renderItem={({ item }) => (
                        <View>
                            <View style={styles.covidHeader}>

                                <View style={styles.covidDetailLeft}>
                                    <Text style={styles.covidText}>ติดเชื้มเพิ่มวันนี้</Text>
                                    <NumberFormat
                                        value={item.new_case}
                                        displayType={'text'}
                                        thousandSeparator={true}
                                        prefix={'+ '}
                                        renderText={value => <Text style={styles.numberCovidText}>{value}</Text>} 
                                    />
                                </View>

                                <View style={styles.covidDetailRight}>
                                    <Text style={styles.covidText}>หายป่วยวันนี้</Text>
                                    <NumberFormat
                                        value={item.new_recovered}
                                        displayType={'text'}
                                        thousandSeparator={true}
                                        prefix={'+ '}
                                        renderText={value => <Text style={styles.numberCovidText}>{value}</Text>} 
                                    />
                                </View>
                             
                            </View>

                            <View style={styles.covidHeader}>

                                <View style={styles.covidDetailLeft2}>
                                    <Text style={styles.covidText}>ติดเชื้อสะสม</Text>
                                    <NumberFormat
                                        value={item.total_case}
                                        displayType={'text'}
                                        thousandSeparator={true}
                                        prefix={''}
                                        renderText={value => <Text style={styles.numberCovidText}>{value}</Text>} 
                                    />
                                </View>

                                <View style={styles.covidDetailRight2}>
                                    <Text style={styles.covidText}>หายป่วยสะสม</Text>
                                    <NumberFormat
                                        value={item.total_recovered}
                                        displayType={'text'}
                                        thousandSeparator={true}
                                        prefix={''}
                                        renderText={value => <Text style={styles.numberCovidText}>{value}</Text>} 
                                    />
                                </View>

                            </View>

                            <View style={styles.covidHeader}>

                                <View style={styles.covidDetailLeft3}>
                                    <Text style={styles.covidText}>เสียชีวิตเพิ่ม</Text>
                                    <NumberFormat
                                        value={item.new_death}
                                        displayType={'text'}
                                        thousandSeparator={true}
                                        prefix={'+ '}
                                        renderText={value => <Text style={styles.numberCovidText}>{value}</Text>} 
                                    />
                                </View>

                                <View style={styles.covidDetailRight3}>
                                    <Text style={styles.covidText}>เสียชีวิตสะสม</Text>
                                    <NumberFormat
                                        value={item.total_death}
                                        displayType={'text'}
                                        thousandSeparator={true}
                                        prefix={'+ '}
                                        renderText={value => <Text style={styles.numberCovidText}>{value}</Text>} 
                                    />
                                </View>
                            </View>
                        </View>
                    )}
                />)}
        </SafeAreaView>
    )
}

export default HomeScreen;

【问题讨论】:

    标签: react-native api


    【解决方案1】:

    请确保您的covidURL 正确或在您的FlatList 中,尝试将您的KeyExtractor 属性替换为keyExtractor={(item, index) =&gt; index.toString()}

    希望这对你有用。

    【讨论】:

    • 我尝试了,但没有任何改变。
    • 然后确保您的 URL 工作正常
    • 是的 covidURL 工作正常,我尝试另一个 url 但有同样的问题
    • 您是否尝试使用react nativeFlatList 组件?
    • 我试过但没用
    猜你喜欢
    • 2019-12-22
    • 2018-04-12
    • 2017-01-25
    • 2018-08-06
    • 2017-07-25
    • 2022-11-18
    • 2022-08-04
    • 1970-01-01
    • 2021-06-08
    相关资源
    最近更新 更多