javascript - React - JSON 文件不会呈现
问题描述
我正在构建一排反应图标。选择图标以显示来自静态 .JSON 文件的内容。我正在尝试结合以下事件:
单击时更改颜色
单击时在静态 .JSON 内容之间更改/切换。
我尝试根据这篇文章将 2 个内联操作结合起来。
但是,只有颜色会发生变化,.JSON 数据不会发生变化。提前感谢您,任何帮助或指导将不胜感激。
下面是我的代码:
import React, { useState } from "react";
import "../Styles/arrow.css";
import { BsFillPeopleFill } from "react-icons/bs";
import { GiLinkedRings } from "react-icons/gi";
import { GoArrowRight } from "react-icons/go";
function Icon(props) {
const handleClick = (messageKey) => () => props.setSelectedIcon(messageKey);
const [bg, changeBGColor] = React.useState(1);
return (
<div className="icon-arrow">
<div className="arrow">
<div className="arrow-line" />
<div className="arrow-icon">
<GoArrowRight />
</div>
</div>
<div className="icons">
<GiLinkedRings
className="rings"
onClick={() => {
handleClick("rings");
changeBGColor(1);
}}
style={{
backgroundColor: bg === 1 ? "#e3e1dc" : "#ae7a67",
}}
/>
<BsFillPeopleFill
className="family"
onClick={() => {
handleClick("family");
changeBGColor(2);
}}
style={{
backgroundColor: bg === 2 ? "#e3e1dc" : "#ae7a67",
}}
/>
</div>
</div>
);
}
export default Icon;
我的 .JSON 数据:iconmessage.json
{
"rings": {
"image": "rings.jpg",
"title" : "Rings",
"message":"Lorem Ipsum"
},
"family": {
"image": "family.jpg",
"title" : "Family is essential",
"message":"Lorem Ipsum"
}
}
从 IconMessage.JSX 中提取的图标/.JSON
import React from "react";
import "../Styles/iconmessage.css";
import messages from "../Static/iconmessage.json";
function IconMessage(props) {
const message = messages[props.selectedIcon]
return (
<div className="icon-message">
<div className="title-message">
<div className="title">{message.title}</div>
<div className="message">{message.message}</div>
</div>
<div className="image">
<img src={`/images/${message.image}`} alt="" srcset="" />
</div>
</div>
)
}
export default IconMessage
解决方案
从 onClick 的角度来看,你做了什么是正确的。我会说问题是你传递的价值。您确定当您将“环”传递给 selectedIcon 时,它应该按照您的意愿呈现 JSON 吗?
我认为问题在于您访问的是messages.title,messages.message,而不是messages.image.title,messages.image.message。
推荐阅读
- javascript - 在 JavaScript 中返回 Select 选项值
- python - Django:为相关表构建动态 Q 查询
- java - JPA org.postgresql.util.PSQLException
- javascript - 确定数字的精度,包括尾随零
- flutter - Flutter FCM 导航 onResume/onLaunch
- php - 弃用 symfony 解决方案
- python - 如何在不保存的情况下直接将 Flask 图像显示为 HTML?
- python - shutil.move 不能在驱动器之间移动
- javascript - Javascript中的整个单词正则表达式匹配和超链接
- javascript - 在 vscode 中格式化后括号消失