'import { useState, useEffect } 来自 “react” 从 “axios” 导入公心;导入 “./components样式/GifContainerStyles.css” 导入 Gif 文本从 “./Gif 文本”导入 Gif 文本;
const GifPost = ({open, onClose}) => {
const [gifs, setGifs] = useState([])
const [gifId, setGifId] = useState([ ])
console.log("gifs:",gifs )
const fetchData = async () =>{
const response = await axios
.get("https://api.giphy.com/v1/gifs/trending",{
params: {
api_key: "Xoa3mXrWxKXw6lJscrKUTsbZsXLbGuGY"
}
}).catch((error) =>{
console.log("error at fetching data", error);
});
setGifs(response.data)
};
const getGifId = (id) => {
setGifId(id);
}
useEffect(() =>{
fetchData()
}, [ ]);
return (
<>
</div>
<div className='post-text'>
<form><textarea placeholder='Whats on your mind?'></textarea> </form>
{Object.keys(gifId).length === 0 ? null : <GifInText gifId={gifId}/> }
</div>
<div className='gif-container'>
<>
{Object.keys(gifs).length === 0 ? (<div>loading...</div>):
<div className='gif-section'>
{
gifs.data.map((items)=>{
return(
<a href="#" className='image-gifs' key=
{items.id}>
<img className="live-gifs" onClick=
{()=>getGifId(items.id)} src={items.images.fixed_height.url} alt="..."/>
</a>
)
})
}
</div>
}
</>
</div>
</>
)
}
export default GifPost;`
这是子组件
'从“反应”导入{useState, useEffects};从“axios”const GifInText=({gifId})=导入axios
const [post, setPost] = useState([])
console.log("post:",post );
const fetchData = async () =>{
axios.get(`https://api.giphy.com/v1/gifs/${gifId}`,{
params: {
api_key: "Xoa3mXrWxKXw6lJscrKUTsbZsXLbGuGY",
gif_id: gifId
}
}).catch((error) =>{console.log("error at fetching gifID2", error);
}).then(response => {setPost(response.data) });}
useEffect(()=>{
fetchData()
}, [fetchData])
return (
<div>
{
post.data && post.data.map((items)=>{
return(
<a href="#" className='image-gifs' key={items.id}>
<img className="live-gifs" src={items.data.images} alt="..."/>
</a>
)
})
}
</div>
)
}
export default GifInText;`
看起来您正在尝试在对象
上使用map函数。您只能直接在数组
上使用map
函数。在您的控制台日志中,post
是一个包含更多对象的对象,例如data
和meta
。
因此,您需要进行以下更改:
首先,更改< code >状态
const [post, setPost] = useState({});
最后,在对象上使用<code>映射
Object.values(post.data).length && Object.values(post.data).map((item)=>{
//use item here
})
Microsoft Windows[版本10.0.18363.778](c)2019 Microsoft Corporation。保留所有权利。 F:\flutter_projects\i_am_rich>flutter build apk您正在构建一个fat apk,它包含用于android-arm、android-arm64和Android-x64的二进制文件。如果您正在将应用程序部署到Pla
我面临这个问题已经有一段时间了,我必须每30分钟重新克隆我的项目,因为这个错误显示,不让我建立我的项目。 `失败:生成失败,出现异常。 > try:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。使用--scan运行以获得完整的洞察力。 在https://help.gradle.org获得更多帮助 在6s中生成失败异常:Gradle
我正在制作一个单位转换器,遇到了一个问题与JoptionPane.ShowMessageDialog代码是完整的,应该运行良好。 如果将两个转换单元都放到同一个单元,转换器将显示一个消息对话框。当消息窗口弹出,它说消息,然后一个确定按钮点击。当我单击Ok按钮时,它不会退出消息对话框。我从这个转换器的另一个更长的版本中为它复制了代码行,它可以很好地使用它。另外,如果你对如何做更好的数学有任何建议,请
当我打算在android Studio中构建android项目时,它显示了在gradle控制台中构建的成功。但它报告了以下问题。
我在项目中有一个问题。过了一会儿,我意识到索引后会出现很多错误。所有的错误都是项目中的链接问题(比如:使用未声明的标识符等等。但是当您< code>cmd click点击某个有问题的类的名称时,一切都很好。项目完成后,错误消失了,但是如果我开始浏览项目,所有的错误又会出现。很讨厌。 我试图解决这个问题的解决方案没有成功: < li >清理项目 < li >清除派生数据 < li >我认为这与< c