开发者问题收集

我面临获取数据的问题(React,useEffect)

2022-01-08
1082

我尝试从下面给出的 URL 获取数据,有时我能获取到数据,但大多数时候控制台里没有数据。我不知道我尝试使用 async-await 时遇到的问题,但结果是一样的。

https://quiet-forest-82433.herokuapp.com/myorders/ [email protected]

我的代码是:

const {user} = useAuth();
const [totalCart, setTotalCart] = useState({})

useEffect(() => {
    const url = `https://quiet-forest-82433.herokuapp.com/myorders/?email=${user?.email}`
    fetch(url)
        .then(res => res.json())
        .then(data =>  console.log(data))
}, []);
1个回答

useEffect 应该依赖于 user 。 并且在您拥有有效的用户电子邮件之前不要调用 fetch。目前,您的代码将要求 email=undefined,直到用户填充,但 useEffect() 不会再次触发,因为不依赖于用户。

useEffect(() => {
    if (!user || !user.email) return

    const url = `https://quiet-forest-82433.herokuapp.com/myorders/?email=${user?.email}`
    fetch(url)
        .then(res => res.json())
        .then(data =>  console.log(data))
}, [user]);
Dave
2022-01-08