gpt4 book ai didi

javascript - 使用 create-react-app 获取 api 数据

转载 作者:数据小太阳 更新时间:2023-10-29 06:14:14 25 4
gpt4 key购买 nike

我是 reactjs 的新手,我正在使用 create-react-app 开始,但我不明白如何调用 api 来获取数据。这是我的代码:

import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
// import { URL, KEY, city, countryCode } from './config.json';


const KEY = "d7ba7d7818dd3cec9ace78f9ad55722e";
const URL = "api.openweathermap.org/data/2.5";
const CITY = "Paris";

class App extends Component {
constructor(props) {
super(props);
this.state = {
data: {}
};
}

componentDidMount() {
var url = `${URL}/weather?q=${CITY}&APPID=${KEY}&units=metric`;
console.log(url);
fetch(url).then(
response => response.json()
).then(
json => {
console.log(json);
this.setState({data: json});
}
);
}

render() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h1 className="App-title">Welcome to React</h1>
</header>
<p className="App-intro">
To get started, edit <code>src/App.js</code> and save to reload.
</p>
</div>
);
}
}

export default App;

render 方法只是 create-react-app 的默认渲染,我没有改变它。我只添加了构造函数和 componentDidMount 方法。我尝试从 OpenWeatherMap API 获取一些数据,将其添加到状态并将其记录到控制台。

请求在 postman 中完美运行,但在我的应用程序中引发了这个错误:语法错误:JSON.parse:JSON 数据第 1 行第 1 列出现意外字符

谁能帮帮我?

最佳答案

在 URL 中包含协议(protocol)以解决问题。提取请求的响应不成功,因此当您尝试将响应解析为 JSON 时,它会抛出异常,因为响应不是有效的 JSON。

const KEY = "d7ba7d7818dd3cec9ace78f9ad55722e";
// Made change here
const URL = "https://api.openweathermap.org/data/2.5";
const CITY = "Paris";

class App extends React.Component {
constructor(props) {
super(props);
this.state = {
data: {}
};
}

componentDidMount() {
var url = `${URL}/weather?q=${CITY}&APPID=${KEY}&units=metric`;
console.log(url);
fetch(url).then(
response => response.json()
).then(
json => {
console.log(json);
this.setState({data: json});
}
).catch(error => console.log(error));
}

render() {
return (
<div className="App">
<header className="App-header">
<h1 className="App-title">Welcome to React</h1>
</header>
<p className="App-intro">
To get started, edit <code>src/App.js</code> and save to reload.
</p>
</div>
);
}
}

ReactDOM.render(<App />, document.getElementById('example'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="example"></div>

关于javascript - 使用 create-react-app 获取 api 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51080730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com