首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我总是获得typeerror:而不是函数,同时尝试筛选或映射数组

为什么我总是获得typeerror:而不是函数,同时尝试筛选或映射数组
EN

Stack Overflow用户
提问于 2021-10-13 07:27:19
回答 1查看 187关注 0票数 1

因此,我试图使用useState钩子中存储的变量从GIPHY筛选和映射一个数组。

这是我的密码

代码语言:javascript
运行
复制
   const [gifdata, setGifdata] = useState([])
   const [Search, setSearch] = useState("")

   function handleChange(e) {
       setSearch(e.target.value)
   }

useEffect(()=> {
    axios.get(`https://api.giphy.com/v1/gifs/trending?api_key=nKEFKPSILLeIlqLEjqhVsRO8ShxIjfcn&limit=50&rating=g`)
   .then(res=>{
       setGifdata(res.data)
       console.log(res.data)
   })
}, [])

const filteringSearch = gifdata.filter(gif=>
   gif.title.toLowerCase().includes(Search.toLowerCase()))

   return (
       <div>
           <header className="bg-blue-600">
               <div className="logo">
                   <label htmlFor="logo">DejareX</label>
               </div>
           </header>
           <div className="heroSection mx-auto">
               <h1>GIF Collections at it's peak</h1>
               <p>loremipsum blah blah blah</p>
           
                   <input type="text" placeholder="Search For A GIF" onChange = {handleChange} />

                   {filteringSearch.map(gif => {
                       return (
                           <Gif 
                           key = {gif.id} 
                           gifImgSrc = {gif.images.original.webp}
                           description = {gif.title}
                           />
                       )
                   })}
       </div>
       </div>
   )
}

注意:创建了一个RANDOMEMAIL地址来获取这个API密钥,它不是用于生产的。I是新的反应,请尽量让我通过。

有人说api中的数据可能不是数组,我重新检查了一下,这似乎是真的。因为它在进入数组之前首先返回一个对象,谁可以帮助修复该对象?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-13 07:42:26

正如我所说的,res.data不是一个数组。axios向结果添加了另一个data层。因此,您的res.data与您在浏览器中看到的不一样,实际上是:

代码语言:javascript
运行
复制
{data: Array(50), pagination: Object, meta: Object}

因此,将res.data改为res.data.data将解决这个问题。

这是一个虚拟的Live Demo

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69551322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档