I'm pretty sure I'm overseeing something here. This [slug].js duplicates the content on a single page. If I click on the Frog link, it'll show me the Frog link and the other data. The slug links work, but they also show other content from other links. I'm trying to make it to only the link's content to display.
import { DataStore, withSSRContext } from "aws-amplify";
import { Post } from "../../models";
import Markdown from "react-markdown";
import { useRouter } from "next/router";
import { useEffect, useState } from "react";
import Head from "next/head";
export default function PostComponent() {
const [posts, setPosts] = useState([]);
useEffect(() => {
async function fetchPosts() {
const postData = await DataStore.query(Post);
setPosts(postData);
}
const subscription = DataStore.observe(Post).subscribe(() => fetchPosts());
fetchPosts();
return () => subscription.unsubscribe();
}, []);
const router = useRouter();
if (router.isFallback) {
return (
<div className="container text-center">
<h1>I apologize, the page is still loading.</h1>
</div>
);
}
return posts.map((post) => {
return (
<>
<Head key={post.title}>
<title>{post.seoTitle}</title>
<meta
name="viewport"
content="initial-scale=1.0, width=device-width"
/>
<meta name="description" content={post.seoDescription} />
</Head>
<div className="container">
<h1>{post.title}</h1>
<Markdown>{post.content}</Markdown>
</div>
</>
);
});
}
export async function getStaticPaths(req) {
const { DataStore } = withSSRContext(req);
const posts = await DataStore.query(Post);
const paths = posts.map((post) => ({ params: { slug: post.id } }));
return {
paths,
fallback: true,
};
}
export async function getStaticProps(req) {
const { DataStore } = withSSRContext(req);
const { params } = req;
const { id } = params;
const post = await DataStore.query(Post, id);
return {
props: {
post: JSON.parse(JSON.stringify(post)),
},
revalidate: 1,
};
}
Thank you help in advance. You can see the live site at https://main.d23urctcf9nr2q.amplifyapp.com/
Via Active questions tagged javascript - Stack Overflow https://ift.tt/vi8OAwB
Comments
Post a Comment