【发布时间】:2020-11-21 10:07:49
【问题描述】:
下午好,我不明白为什么我无法从产品中获得catId 的类别。
也就是说,首先我为产品和类别分别创建一个useState。
然后,使用axios 和useEffect,我通过我的API 通过slug 获取产品。 (产品一切正常,一切都很酷)
接下来我也想获取类别,需要传递catId参数,从之前收到的产品上是不行的。
下面是代码:
import logo from './logo.svg'
import './App.css'
import React, {useState, useEffect} from 'react'
import axios from 'axios'
const App = () => {
const [product, setProduct] = useState({})
const [category, setCategory] = useState({})
useEffect(() => {
const fetchProduct = async () => {
const {data} = await axios.get('/api/products/random-lucky-box')
setProduct(data)
}
fetchProduct()
}, [])
useEffect(() => {
const fetchCategory = async () => {
const {data} = await axios.get(`/api/categories/${product.catId}`)
setCategory(data)
}
fetchCategory()
}, [])
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Название: {product.name} <br />
Цена: {product.price}
</p>
</header>
</div>
)
}
export default App
P.S. :API 单独测试一切正常,例如,如果您传递静态 id 参数。非常感谢您的帮助!
【问题讨论】:
-
如果您想在类别获取 URL 中使用产品。然后你应该在 useEffect 中添加产品作为依赖项。 [产品]
标签: javascript reactjs axios react-hooks