reactjs - 试图在函数中获取标签键但显示为“”
问题描述
我想tags
在点击时从博客文章中获取相应的框。但是,当控制台记录打印标签时,它在内部显示为“” randomizedHex()
。标签隐藏在前端。有人可以帮忙吗?
演示: https ://codesandbox.io/s/prod-glade-lsf46?file=/src/App.js
export default function App() {
const [blogArticles, setBlogArticles] = useState([]);
const [showColor, setShowColor] = useState("");
const [findTag, setFindTag] = useState("");
useEffect(() => {
setBlogArticles(items);
}, []);
const randomizedHex = (blogArticles) => {
setFindTag(blogArticles.tags);
console.log("Print tag:", findTag);
const randomColor = "#" + Math.floor(Math.random() * 16777215).toString(16);
setShowColor(randomColor);
};
return (
<div className="App">
<div className="row">
{blogArticles.map(
({
sys: { id, createdAt },
fields: { title, images, description, shortDescription, tags }
}) => (
<div key={id} className="column">
<article
onClick={() => {
randomizedHex(blogArticles);
}}
key={id}
className="blogmaintile"
>
<img
className="blogImage"
key={images}
src={images}
alt="myimg"
></img>
<div className="blogtitle">
<span key={title}>{title}</span>
</div>
<section>
<p className="blogdescription" key={shortDescription}>
{shortDescription}
</p>
</section>
<section>
<p className="blogdescription" key={description}>
{description}
</p>
</section>
<section>
<p style={{ display: "none" }} className="tag" key={tags}>
{tags}
</p>
</section>
<section className="col2">
<a href="https://google.com">
Read more {">"}
{">"}
</a>
</section>
</article>
</div>
)
)}
</div>
</div>
);
}
解决方案
您需要将tags
destructured from传递给blogArticle.fields
to randomizedHex
。
{blogArticles.map(
({
sys: { id, createdAt },
fields: { title, images, description, shortDescription, tags } // <-- tags
}) => (
<div key={id} className="column">
<article
onClick={() => {
randomizedHex(tags); // <-- pass tags
}}
key={id}
className="blogmaintile"
>
...
</article>
</div>
)
)}
转换randomizedHex
以使用传递的标签与整个 blogArticles
数组。
const randomizedHex = (tags) => {
setFindTag(tags);
console.log("Print tag:", tags);
const randomColor = "#" + Math.floor(Math.random() * 16777215).toString(16);
setShowColor(randomColor);
};
推荐阅读
- excel - 将单元格内容复制到输入消息的 VBA 代码(验证)
- java - 如何以编程方式在android中获取从月初到现在的经过时间
- java - Golang TCP 客户端不向 Java TCP 服务器发送“流结束”
- python - ';' 有什么用 在蟒蛇。我没有看到解释这一点的文件
- html - 更改移动设备的 HTML5 视频源
- python - 将两个列表相乘以创建 python 数据框的智能方法
- python - 重构数组数组并组合相同的项
- shell - iSeries 上的 shell 解释器路径是什么?
- android - Android 8 nullpointer 异常与片段中的函数调用(仅在某些设备上!!!)
- c# - 使用 C# 和 ASP.NET MVC 在 OneDrive 上读取 Excel (xlsx) 文件