微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我正在尝试从 React-Native 应用程序的数据库中获取我的数据

如何解决我正在尝试从 React-Native 应用程序的数据库中获取我的数据

如果我输入 .then(data =>{console.log(data)}),我可以看到数据但不会显示在我的应用程序中。我应该怎么办?谢谢

function Home(props) {

const [data,setData] = useState([]);
const [loading,setLoading] = useState(true);
const loadData = () => {
    fetch(url,{
        method: "GET"
    })
        .then(resp => resp.json())
        .then(data => {
            setData(data)
            setLoading(false) 
        })
        .catch(error => Alert.alert('error',error.message))
};


useEffect(() => {
    loadData();
},[])
{/* 

            

return (
    <View style={styles.homeText}>
        <FlatList
            data={data}
            renderItem={({ item }) => {
                return renderData(item)
            }}
            onRefresh={() => loadData()}
            refreshing={loading}
            keyExtractor={item => `${item.id}`}
        />
      )}

我在 Django 视图中的模型是: 查看.py

 class MeasurementsViewSets(viewsets.ModelViewSet):

    queryset = Measurements.objects.all()
    serializer_class = MeasurementsSerializer

我的 urls.py 是:

router = DefaultRouter()
router.register('measurements',MeasurementsViewSets)
#router.register(r'measurements',views.MeasurementsViewSets) // this doesn't work either 

在 Django 中,我得到:"GET /api/measurements/ HTTP/1.1" 200

解决方法

您不是在获取数据本身。只有响应。

将您的 loadData 方法更改为:

const loadData = () => {
    fetch(url,{
        method: "GET"
    })
        .then(resp => resp.json())
        .then(res => { <------------ THIS
            setData(res.data) <----- AND THIS
            setLoading(false) 
        })
        .catch(error => Alert.alert('error',error.message))
};

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。