首页 > 解决方案 > 如何获取本地 JSON(获取)?

问题描述

如何获取本地 JSON(获取)?

我做一个服务,然后我调用类实例

这不是它的工作方式:

服务.js

export default class ApiService {
    async GetPeople() {
        const request = await fetch('./data.json');
        if(!request.ok) {
            throw new Error('Что-то пошло не так', request.status)
        } else {
            return request.json()
        };
    };
};

用户列表.js

import Service from '../../../Services';

const UsersListContainer = () => {

    const api = new Service();

    useEffect(() => {
        api.GetPeople()
        .then(data => console.log(data))
    }, [api])

    return (
        <UsersListView />
    );
};

export default UsersListContainer;

标签: reactjs

解决方案


正如 Jai 正确所说:您需要等待 .json() 方法。见:https ://gist.github.com/msmfsd/fca50ab095b795eb39739e8c4357a808#gistcomment-2198304

其次我想给大家一个建议:直接将ApiService导出为单例实例。不要在组件内初始化 ApiService 类,也不要将 api 作为依赖项放在 useEffect 中。

原因:您的 ApiService 类没有任何理由在您的 UserListContainer 挂载时创建实例。


推荐阅读