【发布时间】:2021-06-02 13:01:43
【问题描述】:
我正在尝试为首次使用localstorage 访问该网站的用户显示不同的图像集,一切都在 gatsby develop 中按预期工作,但是当我使用 gatsby build 构建网站时,始终使用它返回仅对首次使用的用户显示的图像。这是完整的代码
import * as React from 'react';
import { Component } from 'react';
let visited = typeof window !== 'undefined' && window.localStorage.getItem('visited')
var items = [
"https://picsum.photos/id/40/200/300",
"https://picsum.photos/id/30/200/300",
"https://picsum.photos/id/20/200/300",
"https://picsum.photos/id/10/200/300"
]
class IndexPage extends Component {
reTargetImages() {
typeof window !== 'undefined' && window.localStorage.setItem("visited", JSON.stringify('1'));
}
componentDidMount() {
this.reTargetImages()
}
render() {
if(!visited) {
items = [
"https://picsum.photos/id/10/200/300",
"https://picsum.photos/id/30/200/300",
"https://picsum.photos/id/20/200/300",
"https://picsum.photos/id/40/200/300"
]
}
return (
<main>
<title>Home Page</title>
<h1>
Congratulations
<br />
<span>— you just made a Gatsby site! </span>
{items && items.map((item, index) => {
return (
<img id={`img-${index}`} src={`${item}`} />
)
})}
</span>
</h1>
</main>
)
}
}
export default IndexPage
即使localstorage 设置正确,代码也始终返回适用于首次使用的用户的图像。
我是
[
"https://picsum.photos/id/10/200/300",
"https://picsum.photos/id/30/200/300",
"https://picsum.photos/id/20/200/300",
"https://picsum.photos/id/40/200/300"
]
该问题仅出现在生产版本中,并且在开发中工作正常
【问题讨论】:
标签: javascript reactjs local-storage gatsby