在浏览器中重新加载页面时,React应用程序路由会返回错误。
我的登录页面上有一个博客部分,其中的按钮链接到包含博客文章完整列表的页面,另外一组页面则链接到每个博客条目的完整文章。我正在通过WordPress通过其API引入博客条目,并使用Context管理状态并与我的组件共享数据。我正在使用React Router从登录页面导航到文章列表和每篇完整文章。着陆页上的路线结构:“ / articles /:postId”。
当我按下“阅读更多”按钮时,已经可以显示完整的文章。但是,当我在页面上重新加载带有全文的浏览器时,出现与我的帖子标题匹配的错误。在控制台上,我看到以下错误:
“未捕获的TypeError:无法读取未定义的属性'content'”
“ index.js:1446组件中发生了以上错误: 在文章中(按路线创建) 在路线上(在App.js:19) 在Switch中(在App.js:16) 在提供程序中(在App.js:15) 在路由器中(由BrowserRouter创建) 在BrowserRouter中(在App.js:14) 在App中(位于src“
由于不确定该错误的根源,我没有尝试进行任何修复。我什至无法在浏览器中向后清除它。我必须回到登录页面并重新加载浏览器才能解决问题。
Context.js:
operator <
路由设置:
bool operator < (const A & rhs) const {
return data < rhs.data;
}
商品组件代码:
const Context = React.createContext();
export class Provider extends Component{
constructor(){
super();
this.state={
content: ''
}
}
componentDidMount(){
fetch('url')
.then(res => res.json())
.then(data => this.setState({
content: data
}));
}
render(){
return(
<Context.Provider value={this.state}>
{this.props.children}
</Context.Provider>
)
}
}
export const Consumer = Context.Consumer;
我希望能够重新加载页面而不会出现这些错误。