【发布时间】:2019-06-01 16:28:41
【问题描述】:
在生产模式下,不能使用 URL 参数值来呈现动态属性值。相同的 URL 参数值可用于渲染特定组件。
我已经建立了一个带有最小可重现示例的 repo。
https://github.com/mikepuglisi/gatsby-dynamic-attribute-bug
我们已经能够通过将参数值存储在 state 中来解决这个问题,但我不明白为什么需要这样做(尤其是因为它呈现了正确的 div)。
相关代码(src/pages/index.js)
const IndexPage = ({location}) => {
const params = new URLSearchParams(location.search);
const color = params.get('color');
return (
<Layout>
<SEO title="Home" />
<h1>Hi people</h1>
{ color ?
<p style={{color: color}}>
I SHOULD BE THE COLOR {color} in production mode even after hitting CTRL+F5 (hard refresh)
</p> :
<p>
No Color was passed. Add ?color=blue to URL and hit CTRL+F5 to ensure a hard refresh
</p>
}
<div style={{ maxWidth: `300px`, marginBottom: `1.45rem` }}>
<Image />
</div>
<Link to="/page-2/">Go to page 2</Link>
</Layout>
)
}
url参数?color=blue应该能够渲染合适的div并渲染合适的样式。 div 显示正确,但正确的样式不显示。Issue Screenshot
【问题讨论】: