首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在导航栏中的ReactJS中重定向

问如何在导航栏中的ReactJS中重定向
EN

Stack Overflow用户
提问于 2019-02-07 01:48:26
回答 2查看 1.1K关注 0票数 0

你好,我正试图在导航栏中的页面之间重定向,我想知道如何做那个特定的组件。

这是我的代码。

代码语言:javascript
复制
function redirectRegistration() {
  window.location = '../src/Registration.JS'
}

function redirectLogin() {
  window.location = '../src/App.js'
}

const loginBtn = document.getElementById('login');
const registerBtn = document.getElementById('registerPage');

loginBtn.addEventListener('click' , redirectLogin);
registerBtn.addEventListener('click' , redirectRegistration)

我正在尝试知道如何从我的登录重定向到我的注册页面。

EN

回答 2

Stack Overflow用户

发布于 2019-02-07 02:37:17

两件事。

首先,React有一个虚拟dom,它不是围绕获取元素ID然后向它们添加侦听器而构建的。React组件有一个render方法,您可以在其中放置JSX (基本上是HTML),其中可以为它们所在的HTML放置事件侦听器方法。

通常,您将在React中构建按钮组件,然后添加onClick方法,这与添加单击事件侦听器相同。老实说,我不确定doucment.getElementByID是否能与React一起工作,但即使它能工作,这也不是React的设计使用方式,以这种方式构建会给你带来问题。

其次,在React中,除非您重定向到外部位置,否则通常不会使用window.location进行重定向。即便如此,您通常会将其封装在React Router的标记中。React/SPA的一个优点是,您只需刷新页面中已更改的部分,而使用window.location可以消除这一优势。

React Router通常是您在React中重定向的方式,但这也是围绕React组件的使用构建的,而不是使用getElementByID,然后使用事件侦听器。

建议:将按钮重构为React组件,然后使用React Router进行重定向。

票数 0
EN

Stack Overflow用户

发布于 2019-02-07 02:08:54

你不是在用“反应的方式”做事情。您可以使用箭头语法重写函数,也可以在render方法中使用JSX创建按钮。试试这个:

代码语言:javascript
复制
    redirectRegistration = () => {
        window.location = '../src/Registration.JS'
    }

    redirectLogin = () => {
        window.location = '../src/App.js'
    }

    render() {
        return (
          <React.Fragment>
            <button id="login" onClick={this.redirectLogin}>Login</button>
            <button id="registerPage" onClick={this.redirectRegistration}>Register</button>
          </React.Fragment>
        );
  }
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54559677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档