【发布时间】:2021-08-09 01:57:05
【问题描述】:
我在这里做一个小项目,但在开始使用 API 时遇到了困难。
所以我遇到的问题是我需要访问 api 中的“价格”部分。以下是 api 中一种产品的示例:
我已经设法进入0: Object 等,所以我可以访问name 和brandName 等。但我还需要进入price 那里。
我自己也试过了,但都没有成功。
这是我的代码:
import axios from "axios";
import { useState } from "react";
const ApiTest = (props) => {
const [product, setProducts] = useState([]);
const [price, setPrice] = useState([]);
const getProducts = () => {
const options = {
method: "GET",
url: "https://asos2.p.rapidapi.com/products/v2/list",
params: {
store: "US",
offset: "0",
categoryId: "4209",
limit: "48",
country: "US",
sort: "freshness",
currency: "USD",
sizeSchema: "US",
lang: "en-US",
},
headers: {
"x-rapidapi-key": "",
"x-rapidapi-host": "",
},
};
axios
.request(options)
.then(function (response) {
setProducts(response.data.products);
console.log(response.data.products);
})
.catch(function (error) {
console.error(error);
});
};
return (
<div>
<button onClick={getProducts}>Get Products</button>
<div>
<ul>
{product.map((post) => (
<li key={post.id}>{post.brandName}</li>
))}
</ul>
</div>
</div>
);
};
export default ApiTest;
【问题讨论】:
-
能否提供您从 API 获得的完整回复?
-
另外,你是说
post.price.currency不工作吗? -
@RonB。发表于 pastebin:
yP8nXTSc -
@NisanthReddy 哦,它确实有效。奇怪,我之前在 google chrome 上尝试过,但改用 Mozilla 来设计页面。它有效。谢谢!