ReactJs React-Router 导航/显示和隐藏登录注销菜单

2024-01-10

我遇到了一些与反应路由器导航相关的问题。在我的导航中有两个菜单登录和注册。我的索引页面是登录。

在登录页面上输入电子邮件和密码的值并提交登录按钮后,它会输出为 sessionValue。我的 sessionValue 是从服务器端返回的用户名,它重定向到 TodoApp 页面。登录后,它重定向到 TodoApp 页面。我想显示注销菜单而不是在导航中登录。

Myy代码如下:

app.jsx

  ReactDOM.render(
      <Router history={browserHistory}>
        <Route path="/" component={Main}>
            <Route path="RegistrationForm" component={RegistrationForm}/>
            <Route path="todoapp/:sessionValue"component={TodoApp}/>
            <IndexRoute component={Login}/>
        </Route>
      </Router>, 
      document.getElementById('app')
    );

导航组件

我尝试使用本地存储,但它不起作用。仅当我单击浏览器的后向箭头时,它才有效。

     var Nav= React.createClass({
        render:function(){
            var strUserName = localStorage.getItem('sessionValue');
            console.log(strUserName);
        function loginMenu(){
                if(strUserName){

                                return <Link to="/RegistrationForm" activeClassName="active" activeStyle={{fontWeight: 'bold'}}>Logout</Link> 

            }
            else{
                return <IndexLink to="/" activeClassName="active" activeStyle={{fontWeight: 'bold'}}>LogIn</IndexLink> 

            }
        }
            return(
                <div className="top-bar">
                        <div className="top-bar-left">
                            <ul className="menu">
                            <li className="menu-text">
                                React App
                            </li>
                            <li>
                                {loginMenu()}
                            </li>
                            <li>
                                    <Link to="/RegistrationForm" activeClassName="active" activeStyle={{fontWeight: 'bold'}}>Signup</Link>
                            </li>

                            </ul>
                        </div>
                        </div>
                );
        }
        });
 module.exports=Nav;

登录页面(login.jsx)

if(validForm){
        axios.post('/login', {
        email:this.state.strEmail,
        password:this.state.strPassword
        })
        .then(function (response) {
        //console.log(response.data);
        var sessionValue=response.data;
//After login todoApp page is open and with session value.session value passed through url to todoApp.
        browserHistory.push(`todoapp/${sessionValue}`);
        localStorage.setItem('sessionValue',sessionValue);
 })
        .catch(function (error) {
        console.log(error);
        });
    }
}, 

问题:

  1. 如何显示/隐藏登录/注销菜单。

  2. 登录后显示注销菜单,当我们单击注销菜单时显示登录菜单


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ReactJs React-Router 导航/显示和隐藏登录注销菜单 的相关文章

随机推荐

  • jquery可以做到这一点吗?弹出窗口获取值

    当用户单击父窗口中的按钮时 我使用 JavaScript 打开一个新窗口 子窗口 在新窗口 子窗口 上 我有文本框和按钮 当用户单击按钮时 我需要获取文本框的值并传递给父窗口 在关闭子窗口时 我需要将更新后的值插入到父窗口中 无需刷新父窗口
  • .NET Framework (mscorlib) 中的错误阻止堆栈跟踪行号(在便携式 pdb 中)?

    更新 正如评论中指出的 下面的代码指的是可移植的pdb 可移植的 pdb 与我的情况无关 但使用沙盒应用程序域和可移植的 pdb 的人们可能仍然会对这个问题感兴趣 我正在受限沙箱 AppDomain 内运行代码 从此沙箱中抛出的异常没有附加
  • 一个页面主题 Bootstrap 导航链接不会定向到另一页面,但它适用于页面内的锚点

    我一直在我的 ASP MVC 5 应用程序中使用引导单页主题 由于它是一页 因此所有导航链接都指向页面内的锚点 然后我需要一个额外的链接来定向到另一个页面 但它不起作用 当我看到源代码时 href 很好 悬停也很好 但是单击时它什么也不做
  • JBoss 7 正在尝试从 JBoss bin 加载模块库

    我有一个模块 描述如下
  • OpenGL 色彩空间转换

    有谁知道如何使用 YUV 色彩空间创建纹理 以便我们可以获得基于硬件的 YUV 到 RGB 色彩空间转换 而无需使用片段着色器 我使用的是 NVidia 9400 但我没有看到明显的 GL 扩展似乎可以解决问题 我找到了如何使用片段着色器的
  • 使用 Python 3 时,Celery 'module' 对象没有属性 'app'

    我正在学习芹菜教程 他们正在使用Python2 而我正在尝试使用python3来实现相同的功能 我有2个文件 celery proj py from celery import Celery app Celery proj broker a
  • Python中嵌套列表的总和

    我尝试对嵌套元素列表求和 e g numbers 1 3 5 6 7 8 应该产生sum 30 我写了以下代码 def nested sum L sum 0 for i in range len L if len L i gt 1 sum
  • 如何判断触控板点击的NSEvent,而不是点击点击

    当 点击点击 被选中时 如何判断NSEvent是来自触控板点击 按下 还是点击点击 void mouseEvent NSEvent theEvent if type NSLeftMouseUp type NSLeftMouseDown th
  • Node.js 的打包/解包函数 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有类似python的struct模块为nodejs提供pack unpack功能的模块 我还没有找到
  • 如何在没有登录页面的情况下使用 NextAuth.js 进行身份验证(使用邮递员)

    到目前为止 在我的Next js我已经完成了我的应用程序signup 我被要求做身份验证 登录 using next auth具有自定义凭据 我必须做一个rest API端点 api auth login 我知道如何使用登录页面执行此操作
  • 当所有字段都填满时启用按钮

    我正在使用knockout js进行数据绑定 实际上有一个表单 其中一些字段接受姓名 号码 电子邮件等 假设如果任何一个字段未填写并且按下保存按钮 那么该按钮将进入禁用状态 到目前为止它工作正常 现在 如果我填写空白字段 那么我想再次启用该
  • 权威的Excel范围语法参考

    抱歉 如果之前有人问过这个问题 但我找不到 我正在寻找可用作参考的所有有效字符串的权威描述 例如 A1 C5 A A A2 等 这似乎是一个非常基本的事情 但我 我浪费了几个小时试图找到它 我所能找到的只是一堆 有用 的示例 但没有参考 这
  • WebAPI 控制器中的自动映射器

    我有一个 Car WebAPI 控制器方法 如下所示 注意 carService GetCarData 返回 CarDataDTO 对象的集合 HttpGet Route api Car Retrieve carManufacturerID
  • 创建 React App 添加 CORS 标头

    我试图找出将 Access Control Allow Origin 标头添加到我的 create react app 开发服务器配置中的位置 到目前为止我将其添加到config webpackDevServer config js没有太多
  • Clojure core.async。如何在 with-open 中使用 go block 延迟下载?

    这是我之前问题的延续如何在 Clojure 中按部分生成惰性序列 https stackoverflow com questions 47049581 how to produce a lazy sequence by portion in
  • 修改 CUDA 中的 OpenGL FBO 纹理附件

    我有以下场景 我有自定义的 FBO 其纹理作为颜色附件 我将我的东西渲染到该 FBO 中 下一步我需要与 CUDA 共享该纹理 然后在其上运行一些后处理内核 之后 纹理应该绑定回全屏四边形并渲染到默认帧缓冲区 我读过了几个 OpenGL C
  • 安装 npgsql 以在 Power BI 中使用 PostgreSQL

    我正在尝试将 PostgreSQL 数据库中的数据导入 PowerBI Desktop 但似乎不起作用 我认为问题出在 npgsql 的安装上 当尝试在 PowerBI 中设置新的数据库连接时 我输入数据库和服务器 这是我收到的错误消息 无
  • 如何更改 ggplot2 中的图例线型?

    我有这个简单的图 我无法使用scale linetype manual根据图中的线型更改图例中的线型 生成该图的代码是 library ggplot2 x 1 lt rep 0 6 each 2 pdf 1 lt c 0 0 05 0 05
  • 无法使 MVC4 WebApi 在 JSON 中包含空字段

    我正在尝试使用 MVC4 WebAPI 将对象序列化为 JSON RTM 今天刚刚安装了 VS2012 RTM 但昨天在 RC 中遇到了这个问题 并且我希望所有 null 值都在 JSON 输出中呈现 像这样 Id 1 PropertyTh
  • ReactJs React-Router 导航/显示和隐藏登录注销菜单

    我遇到了一些与反应路由器导航相关的问题 在我的导航中有两个菜单登录和注册 我的索引页面是登录 在登录页面上输入电子邮件和密码的值并提交登录按钮后 它会输出为 sessionValue 我的 sessionValue 是从服务器端返回的用户名