反应useEffect()本地主机API提取不起作用

时间:2019-12-29 13:20:03

标签: reactjs api localhost react-hooks use-effect

我的ReactJS应用程序遇到了麻烦。我正在尝试从在localhost:9090上运行的(用GOlang编写)的API中获取数据。

我正试图以这种方式获取数据(设置者将“ TEST”用于测试)

function ImamsDetails() {
    const [firstName, setFirstName] = React.useState(null);
    const [lastName, setLastName] = React.useState(null);

    React.useEffect(() => {
        fetch('http://localhost:9090/imams/1')
            .then(results => results.json())
            .then(data => {
                setFirstName('TEST');
                setLastName('TEST');
            });
        }, []);

    return (
        <div>
            Name: {!firstName || !lastName ? 'Loading...' : `${firstName} ${lastName}`}
        </div>
    );
}

我试图将localhost更改为127.0.0.1或我的计算机IP地址,它不起作用。它卡在“正在加载...”上。而如果我将URI更改为https://jsonplaceholder.typicode.com/todos/1之类的远程伪造API,则可以正常工作。

我的API返回如下内容:

{"Id":1,"FName":"XXX","LName":"YYY","PersonType":2,"GivenAudios":null}

与下面发布的链接格式相同。

这真的使我发疯。有什么想法为什么不适用于localhost?

1 个答案:

答案 0 :(得分:0)

您是否使用create-react-app?您应该在package.json中设置代理,以便可以从外部URL中获取数据。 Here,您可以在React文档中阅读更多内容。

将此添加到您的package.json

"proxy": "http://localhost:9090"