javascript - Next-offline 构建动态路由失败
问题描述
我正在使用 next-offline 制作 PWA nextjs 应用程序。但是,当我尝试构建它并将其导出为文档时,它无法构建我的 [id].js 动态页面。显示错误消息,如:
预渲染页面“/movies/[id]”时发生错误:TypeError:无法读取未定义的属性“地图”
有没有什么办法解决这一问题。我想我需要在 getInitialProps 中做点什么,因为它是获取数据的地方
import Link from "next/link";
import Head from "next/head";
import Oops from "../../components/Oops";
import Image from "../../components/Image";
import { getMovieDetails, getImageSrc } from "../../utils/apiCalls";
import Layout from "../../components/Layout";
const Movie = ({ title, poster_path, rating, overview, genres, cast, error }) =>
error ? (
<div className="movie">
<Oops />
</div>
) : (
<Layout noOffline={true}>
<div className="movie">
<Head>
<title>{title} | Movies PWA</title>
</Head>
<div className="card">
<div className="card-header">
<div className="card-title h3 text-primary">{title}</div>
<div className="card-subtitle text-gray">Rating - {rating}</div>
<div className="chips">
{genres.map(({ id, name }) => (
<div key={id} className="chip">
{name}
</div>
))}
</div>
</div>
<div className="card-image">
<Image
src={getImageSrc(poster_path, 500)}
alt={`Poster for ${title}`}
className="img-responsive"
/>
</div>
<div className="card-body">
<div className="card-title h4">Overview</div>
<div className="card-subtitle">{overview}</div>
<div className="card-title h4">Cast</div>
<div className="cast">
{cast.map(({ credit_id, profile_path, name }) =>
profile_path ? (
<figure
key={credit_id}
className="avatar avatar-xl tooltip"
data-tooltip={name}
>
<Image src={getImageSrc(profile_path, 92)} alt={name} />
</figure>
) : null
)}
</div>
</div>
<div className="card-footer btn-group btn-group-block">
<Link href="/movies">
<a className="btn btn-primary">Back to Movies</a>
</Link>
</div>
</div>
</div>
</Layout>
);
Movie.getInitialProps = async ({ query: { id } }) => {
const res = await getMovieDetails(id);
if (res.error || !res.original_title) return res;
const {
poster_path,
overview,
genres,
credits: { cast },
vote_average,
original_title
} = res;
return {
title: original_title,
poster_path,
rating: vote_average,
overview,
genres,
cast: cast.filter((c, i) => i < 5)
};
};
export default Movie;
复制“静态构建”目录启动 3 个工作人员复制“公共”目录 [==] 导出 (1/6) 预渲染页面“/movies/[id]”发生错误:TypeError:无法读取未定义的属性“地图”
解决方案
推荐阅读
- php - 如何使用 PHP 在 Elasticsearch 查询中传递斜杠?
- android - 如何使进度条的背景变白?
- vuejs2 - 如何使用 vue-router 传递自定义参数?
- jenkins - 如何让 Job DSL 插件从远程 Git 而不是本地文件系统获取所有作业?
- list - 如何创建一个包含对 Haskell 中另一个列表的每个项目的计算的列表?
- c# - 在 OnActionExecuting .Net WebApi 中调用异步方法
- javascript - 我如何优化 App.js Vue.js 应用程序的大小,因为它的大小很大
- sendgrid - Sendgrid Inbound Parse webhook 和 Java MimeMessage 兼容性
- coordinates - 如何将边界框坐标转换为 Yolo 坐标?
- json - 将怪物 json 文件拆分为较小的 json 文件