【发布时间】:2020-09-07 16:13:08
【问题描述】:
我已经开始使用 Next JS,并且遇到了我的第一个障碍。 我正在创建一个显示一堆播客剧集的页面,并且我正在为主页上的每个播客显示一个小预览卡。卡片组件看起来像这样:
import React from 'react';
import Link from 'next/link';
import { kebabCase } from 'lodash';
import { format } from 'date-fns';
import TextTruncate from 'react-text-truncate';
import { Episode as EpisodeInterface } from '../../interfaces';
type Props = {
episode: EpisodeInterface;
};
const Episode: React.FunctionComponent<Props> = ({ episode }) => {
return (
<Link
href="episodes/[id]"
as={`episodes/${episode.itunes.episode}-${kebabCase(episode.title)}`}
>
<div className="group transition duration-500 cursor-pointer rounded-lg overflow-hidden shadow-lg border border-cream-darker bg-surface hover:bg-surface-hover hover:border-surface-hover hover:text-text-hover">
<div className="px-6 py-6">
<div className="font-bold font-serif text-3xl mb-2">
{episode.title}
</div>
<div className="transition duration-500 flex justify-between mb-2 text-gray-700 group-hover:text-text-hover">
<span>Episode {episode.itunes.episode}</span>
<span>{format(new Date(episode.isoDate), 'd MMMM yyyy')}</span>
</div>
<div className="mb-2">
<TextTruncate line={3} text={episode.contentSnippet} />
</div>
</div>
</div>
</Link>
);
};
export default Episode;
现在我希望能够将episode 对象传递到位于/pages/episodes/[id].tsx 的完整剧集页面,该页面通过上面的Link 元素链接到,而不是必须重新获取和过滤所有基于的剧集根据我选择的路线名称episodes/${episode.itunes.episode}-${kebabCase(episode.title)}。
- 是否可以将整个
episode对象传递给新视图? - 如果没有,是否可以将一些更具体的数据(例如唯一 ID)传递给视图,以便我能够更好地识别剧集,而不会因查询参数而使路线混乱?
【问题讨论】:
标签: javascript reactjs next.js