TypeError: Cannot read properties of undefined(type)



我有一个项目建立在NextJs为前端和strapi cms为后端。我有一种叫做博客的集合类型,在我的网站上发布博客。我已经添加了博客与所有必要的字段,但博客显示:TypeError: Cannot read properties of undefined type。没有问题的API,因为我得到了完整的对象,博客。由于某种原因,它没有获取博客。我之前已经添加了很多博客,这些博客正在工作,但现在当我试图添加一个新的博客,我得到这个错误,然后像30分钟后,我得到一个404页面。

blogs/[slug].js文件:

import { useEffect } from "react";
import { fetchAPI, updateViews } from "../../utils/api";
import InsightsSinglePageLayout from "@/components/elements/insights-single-layout";
const Blog = ({ blog, similarBlogs }) => {
useEffect(() => {
// Update the views count
fetchAPI(`/blogs?slug=${blog.slug}`)
.then((latestBlog) => {
updateViews("blogs", latestBlog[0]);
});
}, []);
return (
<section>
<InsightsSinglePageLayout insightsData = {blog}
similarInsight = {similarBlogs}
type={blog.type.title.toLowerCase()}/>
</section>
) 
};
export const getStaticProps = async (context) => {
const blog = await fetchAPI(`/blogs?slug=${context.params.slug}`)
const similarBlogs = await fetchAPI(`/solutions?title=${blog[0].solution?.title}`)
return {
props: {
blog : blog[0],
similarBlogs : similarBlogs[0] ? similarBlogs[0].blogs.filter(data => data.id != blog[0].id).slice(0,5) : [] ,
},
};
};
export const getStaticPaths = async () => {
const blogs = await fetchAPI('/blogs')
const slugs = blogs.map(blog => blog.slug)
const paths = slugs.map(slug => ( {params : { slug : slug.toString() }} ))
return{
paths,
fallback:false
}
};
export default Blog;

我已经重新启动了登台服务器,希望得到一个更好的错误,并尝试调试它,但我得到相同的错误。

感谢您的回复。我有解决办法了。这个问题是由于getStaticProps。

我的后端博客数量超过100个,getstaticprops无法为我获取最近的博客。

对于它的工作,我不得不简单地使fallback = true,虽然这不是一个正确的解决方案,因为它会导致一些性能问题,我将不得不写我的查询这样一种方式,它按降序获取博客,所以我将得到我最近的博客没有任何错误。

相关内容

  • 没有找到相关文章

最新更新