reactjs - 当我们点击数据时如何显示并发送相同的数据到另一个页面
问题描述
我有Card
组件来显示来自 Axios 的数据,然后我想Card
在另一个页面中单击时显示数据。我应该怎么办?
Sidebar.js
import React, { useState, useEffect } from 'react';
import axios from 'axios';
import Card from './Card';
const SideBar = () => {
const [menuItem, setMenuItem] = useState([]);
const url = 'https://blalalalalalla';
const [categories, setCategories] = useState([]);
useEffect(() => {
getIconApp('All Categories');
getCategory();
}, []);
const getIconApp = (type) => {
axios
.get(`${url}`)
.then((res) => {
const allIconApp = res.data;
if (type === 'All Categories') {
setMenuItem(allIconApp);
} else {
const filteredData = allIconApp.filter(
(app) => app.category === type
);
setMenuItem(filteredData);
}
})
.catch(function (error) {
console.log(error);
});
};
return (
<div className="flex">
<div className="container">
<Card menuItem={menuItem} />
</div>
</div>
);
};
export default SideBar;
Card.js
import React from 'react';
import { Link } from 'react-router-dom';
const Card = ({ menuItem }) => {
return (
<>
<div className="flex flex-wrap">
<div className="grid grid-cols-3 md:grid-cols-3 grid-rows-2 md:grid-rows-2 gap-x-9 md:gap-x-6 ">
{menuItem.map((app, index2) => (
<div
className="flex text-sm my-4 pt-4 rounded-md relative "
style={{
width: 348,
height: 168,
backgroundColor: `${app.color}`,
cursor: 'pointer',
}}
>
<Link to="/details">
<div className="pl-4">
{/* {console.log(app.imageUrl[1].card)} */}
<div
style={{
width: 64,
height: 64,
borderRadius: 16,
boxShadow: `0px 4px 8px 2px rgba(3, 21, 49, 0.06)`,
marginBottom: 8,
}}
>
<img
src={app.imageUrl[0].icon}
alt=""
style={{ width: 64, borderRadius: 16 }}
className=""
/>
</div>
<h2>{app.name}</h2>
<p className="text-base-7 text-2">{app.type}</p>
</div>
<div className="">
<img
src={app.imageUrl[1].card}
alt={app.name}
className="absolute bottom-0 right-6"
style={{ marginLeft: 60, width: 164 }}
/>
</div>
</Link>
</div>
))}
</div>
</div>
</>
);
};
export default Card;
解决方案
您可以将变量(状态)作为 prop 发送到 Card 组件,"displayAxios"
并将 false 作为默认值。然后您可以使用 handleClick 更改状态。
在Card
组件内部,使用基于 prop 的三元来显示或不显示内容。
推荐阅读
- python - 有没有办法用 conda 安装 pyarrow nightly builds?
- sql - 在 MS Access 中的列的每个单元格中删除逗号分隔字符串中的重复项
- python - 如何在 python 中使用嵌套循环修复我的元胞自动机
- c# - 在应用程序控制台(.Net Framework)中使用用户机密的问题
- r - 用R中的循环或函数编写年月向量
- unity3d - 如何在统一视频播放器中更改音量
- java - 无法使用 Visual Studio 2015 编辑 Xamarin .axml 布局文件
- python - 在csv文件中将行转换为python中的列很热
- typescript - 无法在 Appium 的量角器中启动 WebDriver 会话
- javascript - 在 React 中出现意外的令牌错误