渲染之前在useEffect挂钩中获取数据-React

丹尼尔·斯曼

我正在构建一个原型,该原型在React中获取Spotify用户的播放列表数据。数据获取是在useEffect挂钩内完成的,并设置播放列表变量的状态。因此,我想呈现每个播放列表的名称。但是,似乎仅在渲染后才获取数据,这会引起问题,因为渲染前未设置状态,因此播放列表变量未定义。在继续使用React钩子时如何解决此问题?我的代码如下。

import './App.css'
import queryString from 'query-string'
import React, { useState, useEffect } from 'react'

const App = () => {

  const [userData, setUserData] = useState({})
  const [accesstoken, setAccesstoken] = useState('')
  const [playlists, setPlaylists] = useState({})

  useEffect(() => {

    let parsed = queryString.parse(window.location.search)
    let accesstoken = parsed.access_token
    if (!accesstoken) {
      return
    }
    setAccesstoken(accesstoken)

    fetch('https://api.spotify.com/v1/me', {
      headers: {'Authorization': 'Bearer ' + accesstoken}
    }).then(response => response.json())
    .then(data => setUserData(data))

    fetch(`https://api.spotify.com/v1/me/playlists`, {
      headers: {'Authorization': 'Bearer ' + accesstoken}
    }).then(response => response.json())
    .then(data => setPlaylists(data))

  }, [])

  return(
    <div>
      {accesstoken ? (
        <div>
          <h1>Welcome, {userData.display_name}</h1>
          <h2>Playlists</h2>
          <div>
            {playlists.items.map(playlist => 
              <p>
                {playlist.name}
              </p>
            )}
          </div>
        </div>
      ) : (
        <button onClick={() => window.location = 'http://localhost:8888/login'}>Login</button>
      )}
    </div>
  );
}

export default App;
西瓦科

使用conditional rendering检查渲染中的值

   <div>
      {userData && <h1>Welcome, {userData.display_name}</h1>}
      <h2>Playlists</h2>
      {playlists && playlists.items && (
        <div>
          {playlists.items.map((playlist) => (
            <p>{playlist.name}</p>
          ))}
        </div>
      )}
    </div>;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

useEffect挂钩中的问题以在React.js中获取api

来自分类Dev

无法在useEffect挂钩中使用React表单数据

来自分类Dev

在React中渲染之前获取Firestore数据

来自分类Dev

React-访问在useEffect挂钩中结算的对象属性

来自分类Dev

在React.useEffect挂钩中未调用clearInterval

来自分类Dev

React useEffect挂钩中的Fetch API没有响应

来自分类Dev

如何仅在React自定义挂钩中获取数据一次?

来自分类Dev

为什么在UseEffect挂钩中设置状态后,我的React状态仍未定义?

来自分类Dev

在useEffect React挂钩中的不同时间实施多个Firestore调用

来自分类Dev

如何在每次渲染之前重置 UseEffect React Hooks 中的数据?

来自分类Dev

React顺序渲染挂钩

来自分类Dev

使用React挂钩从API重新获取数据

来自分类Dev

如何显示useEffect挂钩中的数据?

来自分类Dev

无法从React挂钩中的public / images文件夹中获取图像

来自分类Dev

在React挂钩中更改处理程序

来自分类Dev

更新React挂钩中的嵌套对象

来自分类Dev

React Hooks Firebase-useEffect挂钩不返回任何数据

来自分类Dev

React不会在自定义挂钩中重新渲染状态更新时的所有组件

来自分类Dev

React useEffect无限循环获取数据axios

来自分类Dev

为什么在函数返回之前未在此处调用React的useEffect挂钩?

来自分类Dev

React Native AsyncStorage在渲染后获取数据

来自分类Dev

React-在呈现页面之前获取数据

来自分类Dev

如何在“之前”挂钩中获取摩卡测试名称?

来自分类Dev

在onEnter挂钩中进行react-router自动登录

来自分类Dev

是否鼓励使用闭包在React挂钩中“保存”值

来自分类Dev

在react自定义挂钩中未定义useHistory

来自分类Dev

React:如何在渲染之前确保请求的数据可用?

来自分类Dev

使用useCallback重构useEffect挂钩-React

来自分类Dev

在React中将Async函数放入useEffect()挂钩

Related 相关文章

  1. 1

    useEffect挂钩中的问题以在React.js中获取api

  2. 2

    无法在useEffect挂钩中使用React表单数据

  3. 3

    在React中渲染之前获取Firestore数据

  4. 4

    React-访问在useEffect挂钩中结算的对象属性

  5. 5

    在React.useEffect挂钩中未调用clearInterval

  6. 6

    React useEffect挂钩中的Fetch API没有响应

  7. 7

    如何仅在React自定义挂钩中获取数据一次?

  8. 8

    为什么在UseEffect挂钩中设置状态后,我的React状态仍未定义?

  9. 9

    在useEffect React挂钩中的不同时间实施多个Firestore调用

  10. 10

    如何在每次渲染之前重置 UseEffect React Hooks 中的数据?

  11. 11

    React顺序渲染挂钩

  12. 12

    使用React挂钩从API重新获取数据

  13. 13

    如何显示useEffect挂钩中的数据?

  14. 14

    无法从React挂钩中的public / images文件夹中获取图像

  15. 15

    在React挂钩中更改处理程序

  16. 16

    更新React挂钩中的嵌套对象

  17. 17

    React Hooks Firebase-useEffect挂钩不返回任何数据

  18. 18

    React不会在自定义挂钩中重新渲染状态更新时的所有组件

  19. 19

    React useEffect无限循环获取数据axios

  20. 20

    为什么在函数返回之前未在此处调用React的useEffect挂钩?

  21. 21

    React Native AsyncStorage在渲染后获取数据

  22. 22

    React-在呈现页面之前获取数据

  23. 23

    如何在“之前”挂钩中获取摩卡测试名称?

  24. 24

    在onEnter挂钩中进行react-router自动登录

  25. 25

    是否鼓励使用闭包在React挂钩中“保存”值

  26. 26

    在react自定义挂钩中未定义useHistory

  27. 27

    React:如何在渲染之前确保请求的数据可用?

  28. 28

    使用useCallback重构useEffect挂钩-React

  29. 29

    在React中将Async函数放入useEffect()挂钩

热门标签

归档