我试图找到在用户进入页面时第一次显示解除警报的方式,然后当用户再次点击该页面时,它将不再显示该警报。
我使用此网站上的代码:https://reactstrap.github.io/components/alerts/
我的代码:
this.state = {
hasVisitedPageBefore: false,
};
visitPage() {
this.setState({ hasVisitedPageBefore: true });
}
showAlert() {
return (
<Alert color="info" isOpen={this.state.visible} toggle={this.onDismiss}>
Congratulations! You have been created deck.
</Alert>
);
}
render
{this.state.hasVisitedPageBefore ? null : showAlert}
你们知道怎么检查吗?请建议我。
谢谢
答案 0 :(得分:0)
如果我理解正确,您想“记住”用户访问过某个页面,这样当用户再次访问时,您必须以不同的方式显示您的页面(即没有提醒)。
你需要有一个状态变量hasVisitedPageBefore
(或者你选择调用它的任何东西!)。启动应用程序时将其设置为默认值false
。访问该页面时,将变量设置为true
。
然后在您的页面中,根据hasVisitedPageBefore
是true
还是false
来显示或隐藏提醒。
<div>
{hasVisitedPageBefore?null:<Alert>Message</Alert>}
<MyPage />
</div>
随意询问您是否在查明细节时遇到问题。
答案 1 :(得分:0)
您可以帮助localstorage在不同页面之间保留标记
EG。 从construcor开始
constructor() {
this.state = {
hasVisitedPageBefore: localStorage.get("hasVisited") || false,
};
}
现在在
中设置访问标志visitPage() {
localStorage.set("hasVisited", true)
this.setState({ hasVisitedPageBefore: true });
}
如果要将此首选项保留在当前浏览会话中,则可以使用sessionStorage
。
[这只是一个想法,请原谅我的语法]