如何设置解雇警报只显示一次

时间:2017-10-27 03:35:03

标签: reactjs redux react-router react-redux reactstrap

我试图找到在用户进入页面时第一次显示解除警报的方式,然后当用户再次点击该页面时,它将不再显示该警报。

我使用此网站上的代码: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}

你们知道怎么检查吗?请建议我。

谢谢

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您想“记住”用户访问过某个页面,这样当用户再次访问时,您必须以不同的方式显示您的页面(即没有提醒)。

你需要有一个状态变量hasVisitedPageBefore(或者你选择调用它的任何东西!)。启动应用程序时将其设置为默认值false。访问该页面时,将变量设置为true

然后在您的页面中,根据hasVisitedPageBeforetrue还是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

[这只是一个想法,请原谅我的语法]