【问题标题】:Map function is throwing errors in react js地图功能在反应js中引发错误
【发布时间】:2020-06-26 07:17:01
【问题描述】:

我是 React js 的新手,很快就学会了开发静态网站。 因为我是 python 的忠实粉丝,所以我使用 Django-rest-framework 开发了我的后端。

我正在使用 react 前端成功地从后端获取我的数据。

我总是喜欢使用功能组件而不是状态组件。 我知道我需要映射我的状态对象才能在其中显示内容,但它会引发错误

TypeError: users.map is not a function

我不知道为什么,请指导我。一件重要的事情是我完美地将我的数据记录到控制台而不是在 return() 中。

以下是我的代码

import React,{useState,useEffect} from "react"
import{useHttpClient} from './components/http-hook'

const App=()=>{
  const[users,setuser]=useState({})
  const{isLoading,error,sendRequest,clearError}=useHttpClient()


  useEffect(() => {
    const fetchUsers=async()=>{
      try{
        const responseData=await sendRequest("http://127.0.0.1:8000/backend/list/")
        setuser(responseData)
      }
      catch(err){console.log(err)}
    }
   fetchUsers()
  }, [sendRequest])

  const fetchUserslist=async=>{
    console.log(users)
  }

    return(<div>
      <button onClick={fetchUserslist}>See list</button>
      <ul>
    {users.map(user=><div>{user.name}</div>)}
      </ul>
      </div>

    )
}

export default App

我已经创建了自己的自定义钩子 useHttpClient 来处理数据并且没有任何抱怨

【问题讨论】:

  • 更改const[users,setuser]=useState([])
  • 请告诉我如何解析对象(如果我将来有任何用处)

标签: javascript reactjs react-native javascript-objects react-map-gl


【解决方案1】:

如我所见

const[users, setuser]=useState({})

你已经向用户发起了一个对象,它不是一个数组,所以当我们尝试 users.map 时,它最终会出现上述错误

要执行 .map 操作,它必须初始化为一个数组,如下所示

const[users,setuser]=useState([])

如果你真的想遍历对象,你能做的最好的事情就是从对象中取出数组并循环它:

const obj = {name: "hello", age: 23};

Object.keys(obj).map((key) => <div>{obj[key]}</div>)

【讨论】:

  • 非常感谢它对我有用..即使它是一个小错误我也很困惑。
  • 如果我真的想使用对象,我可以知道如何映射对象
  • 这是 JS 特有的,不是 react 。顺便说一句
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-22
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
相关资源
最近更新 更多