reactjs - 反应路由器 - 单击卡并重定向到包含该卡内容的新页面(卡详细信息)
问题描述
我有一张显示电影/电视节目的卡片列表。我需要的是当我点击一张卡片时,它会将我重定向到一个新页面(详细信息页面),我可以在其中查看该特定电影/卡片的详细信息。
我的 card.js 和 card-collection.js 是:
卡片 :
import React from 'react';
import './card.styles.css';
const Card = ({ item }) => (
<div className='card-container'>
<div
className='image'
style={{
backgroundImage: `url(https://image.tmdb.org/t/p/w1280${item.backdrop_path})`,
}}
></div>
<div className='basic-info'>
{item.name ? (
<p className='title'>{item.name}</p>
) : (
<p className='title'>{item.title}</p>
)}
{item.first_air_date ? (
<p className='title'> {item.first_air_date.substring(0, 4)}</p>
) : (
<p className='title'>{item.release_date.substring(0, 4)} </p>
)}
</div>
</div>
);
export default Card;
卡片收藏:
import React from 'react';
import Card from '../card/card.component';
import './card-collection.styles.css';
class CardCollection extends React.Component {
goToDetails = (item) => {
localStorage.setItem('selectedItem', item);
this.props.history.push('/details');
};
render() {
console.log('PROPOVI SUUU', this.props);
return (
<div className='card-collection'>
{this.props.items.data
.filter((item, idx) => idx < 10)
.map((item) => (
<Card
key={item.id}
item={item}
onClick={() => this.goToDetails(item)}
/>
))}
</div>
);
}
}
export default CardCollection;
我尝试了多种方法,但我似乎无法传递我的卡片道具(如果没有别的,我只能使用 id),但我无法通过我尝试过的任何其他方式发送该信息。
解决方案
您需要使用具有指定路线的 Link 标签包装您的 Card 组件。
<Link to="details/${id}"> <Card props={props} /> </Link>
文档 react-router 链接
推荐阅读
- c# - 如何修圆饼图切片的边缘?
- javascript - 渲染后从组件获取innerHTML
- rust - 如何从 for 循环返回多个值?
- javascript - 使用 HTML 和 JavaScript 通过按钮更改元素的颜色
- java - KEYCLOAK VERTX 登出
- bert-language-model - 尝试在 onnotes 上训练 AllenNLP 共指解析模型:让 CUDA 内存不足
- ios - 有没有类似于 iWatch 应用程序的 LocalAuthentication 的东西?
- arrays - 找到最接近平均值的元素 - c
- html - CSS 不同步
- php - 在插入数据库之前使用钩子从 Woocommerce 订单中删除费用