我在Gatsby中使用React上下文,并且生产版本中的状态更改有问题。我的上下文正在变化React不会自动更新。
我认为我的问题与以下问题有关:Unable to update JSX attribute based on URL parameter in a Gatsby app running in production
但是,我没有收到任何不匹配错误。
在开发模式下效果很好,为什么在生产环境中不起作用?
答案 0 :(得分:1)
这解决了我的问题: https://github.com/gatsbyjs/gatsby/issues/17914
两遍渲染
class Layout extends React.Component {
constructor(props) {
super(props)
this.state = { isClient: false }
}
render() {
// can be `div` or anything else, I tried to keep this generic
return <React.Fragment key={this.state.isClient}>
{/*...*/}
</React.Fragment/>
}
componentDidMount() {
this.setState({ isClient: true })
}
}