【发布时间】:2019-03-11 06:47:11
【问题描述】:
我在 gatsby 中将数据从一个页面传递到另一个页面。第一页代码:
let state = {book: book, src: src}
return (
<div className="book__holder">
<Link to="/pdf/" state={state}>
<Card
hoverable
style={{ width: 240 }}
cover={<img alt={book}
src={url}
/>}
>
<Meta
title={book}
description={faculty+" "+year+"-"+part}
/>
</Card>
</Link>
</div>
此数据在 pdf 页面中用作:
const PDFPage = props =>{
return (
<React.Fragment>
<SEO title={props.location.state.book} />
<NavBar></NavBar>
<Embed src={props.location.state.src} type="application/pdf">
</Embed>
</React.Fragment>
)}
export default PDFPage
使用 gatsby develop 时一切正常,但是当我使用 gatsby build 时,它会引发以下错误:
error Building static HTML for pages failed
See our docs page on debugging HTML builds for help https://gatsby.app
/debug-html
11 | return (
12 | <React.Fragment>
> 13 | <SEO title={props.location.state.book} keywords={[`gatsby`,
`application`, `react`]} />
| ^
14 | <NavBar></NavBar>
15 | <Embed src={props.location.state.src} type="application/pdf">
</Embed>
16 |
WebpackError: TypeError: Cannot read property 'book' of undefined
- pdf.js:13 PDFPage
lib/src/pages/pdf.js:13:38
谁能帮帮我?
【问题讨论】:
-
您的
state未定义。请检查您是否在路线中正确传递状态。 -
正如我上面所说,当我使用 gastby 开发时,一切正常。 PDF 正确加载,状态已设置。但是当我运行 gatsby 时会出现构建错误。
标签: javascript reactjs gatsby