首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >react路由器-dom链接不工作

react路由器-dom链接不工作
EN

Stack Overflow用户
提问于 2017-06-10 10:49:11
回答 4查看 23.3K关注 0票数 7

我从“反应路由器”转到“反应路由器”,修正了所有的错误.但是,现在点击链接,url正在改变,但各自的视图没有呈现。

下面是我的应用程序的结构:

index.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ReactDOM.render(
  <Provider store={createStoreWithMiddleware(reducers)}>
    <HashRouter>
        <App>
            <Switch>
                    <Route path="signin" component={Signin} />
                    <Route path="about" component={About} />
                    <Route path="signout" component={Signout} />
                    <Route path="signup" component={Signup} />
                    <Route path="thanks" component={Thanks} />
                    <Route path="tasks" component={ requireAuth(Task)  }/>
                    <Route path="/" component={ Content }/>

            </Switch>
        </App>
    </HashRouter>
  </Provider>
  , document.querySelector('.container'));

app.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class App extends Component {
    render() {
        return (
            <div>
                <Header/>
                    {this.props.children}
                <Footer/>               
            </div>
        );
    }
}

export default withRouter(App);

header.js

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Header extends Component {

    showLoginButton() {
        if (this.props.authenticated) {
          // show a link to sign out
          return [<span className="loginBtn">
                    <Link to="/signout">Sign Out</Link>
                    </span>,
                <span className="loginBtn">
                    <Link to="/tasks">Tasks</Link>
                </span>
          ]
        } else {
          // show a link to sign in or sign up
          return [
            <span className="loginBtn" key={1}>
              <Link className="nav-link" to="/signin">Sign In</Link>
            </span>,
            <span className="loginBtn" key={2}>
              <Link className="nav-link" to="/signup">Sign Up</Link>
            </span>,
            <span className="loginBtn" key={3}>
                  <Link className="nav-link" to="/about">About</Link>
              </span>
          ];
        }
    }

    render() {
        return (
            <div className="header">
                <span className="logo">
                    <Link to="/" className="navbar-brand">company</Link>
                </span>
                {this.showLoginButton()}
            </div>
        );
    }
}

function mapStateToProps(state) {
  return {
    authenticated: state.auth.authenticated
  };
}

export default withRouter(connect(mapStateToProps)(Header));

我尝试过withRouter,就像在post https://stackoverflow.com/a/43811162/888181中提到的那样,但是它仍然不起作用!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-06-10 15:59:22

尝试将根路径移到顶部,并确保将exact放在路径前面。另外,您应该将/放在其他路径上。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Switch>
    <Route exact path="/" component={ Content }/>
    <Route path="/signin" component={Signin} />
    <Route path="/about" component={About} />
    <Route path="/signout" component={Signout} />
    <Route path="/signup" component={Signup} />
    <Route path="/thanks" component={Thanks} />
    <Route path="/tasks" component={ requireAuth(Task)  }/>
</Switch>

参考资料:https://reacttraining.com/react-router/web/api/Switch

票数 15
EN

Stack Overflow用户

发布于 2021-04-17 12:31:29

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import {NavLink} from 'react-router-dom';

使用NavLink组件安装一个标签,对我来说它是工作的

票数 1
EN

Stack Overflow用户

发布于 2022-01-07 02:44:38

现在有点晚了,但我最近遇到了同样的问题,这就是为什么我遇到了您的问题,并发现这篇文章很有帮助:https://reactrouter.com/docs/en/v6/api#route

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Router>
    <Route exact path="/" element={ <Content /> }/>
</Router>

现在,反应性路由器-dom v6也用路由替换了交换机元素,所以如果您升级了包版本,请注意https://reactrouter.com/docs/en/v6/upgrading/v5#upgrade-all-switch-elements-to-routes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44476918

复制
相关文章
React篇(038)-Virtual DOM 如何工作?
1.每当任何底层数据发生更改时,整个 UI 都将以 Virtual DOM 的形式重新渲染。
齐丶先丶森
2022/05/12
2480
React篇(038)-Virtual DOM 如何工作?
React DOM Diff算法
时间在更新,每次更新,虚拟DOM就会进行对比,如果对比出不同,才会重新渲染真实DOM。对比的最小粒度是:标签。(最小粒度:买房只能买一套,而不能买一平米。那么一套房就是房子的最小粒度)
用户4793865
2023/01/12
3180
React---虚拟DOM与DOM Diffing算法
1). 简单的说: key是虚拟DOM对象的标识, 在更新显示时key起着极其重要的作用。
半指温柔乐
2021/04/23
6660
React---虚拟DOM与DOM Diffing算法
react 路由 react-router/react-router-dom
import { BrowserRouter as Router, Route, Link, Switch } from 'react-router-dom'
刘嘿哈
2022/10/25
2880
React 虚拟Dom渲染算法
React提供了一系列声明性的API接口,因此在使用时不必担心每次库的更新会修改API接口。这样可以降低编写应用的复杂度,但是带来的问题是无法很好的理解React是如何实现这些功能的。这篇文章会介绍React的差异比对算法——“融合算法”是如何执行的。
随风溜达的向日葵
2018/08/08
8020
React虚拟DOM的理解
Virtual DOM是一棵以JavaScript对象作为基础的树,每一个节点可以将其称为VNode,用对象属性来描述节点,实际上它是一层对真实DOM的抽象,最终可以通过渲染操作使这棵树映射到真实环境上,简单来说Virtual DOM就是一个Js对象,是更加轻量级的对DOM的描述,用以表示整个文档。
WindRunnerMax
2020/12/16
8400
React DOM的diffing算法
在上面的示例中,我们有一个初始状态的虚拟DOM树(oldVNode)和一个更新后的虚拟DOM树(newVNode)。React将使用diffing算法来比较这两个虚拟DOM树,并将更新应用到真实DOM中。
堕落飞鸟
2023/05/20
2460
路由器工作模式
“通过路由器将运营商提供的有线网络转换成WiFi信号,从而实现家庭用户共享上网。”
hide
2022/12/30
1.9K0
路由器工作模式
详解「react-dom」 API
从Vue转到React差不多快三个月,这两种框架其实在设计哲学上完全是不一样的道路但是同时又那么相似。
19组清风
2021/11/15
8850
详解「react-dom」 API
react中的虚拟DOM
6. 新的DOM(实际上就是DocumentFragment),和原始的DOM做比对,找差异
EchoROne
2022/08/15
7920
react中的虚拟DOM
路由器工作模式
无线路由器上一般有AP(接入点)模式、Router(无线路由)模式、Repeater(中继)模式、Bridge(桥接)模式、 Client(客户端)模式,下面将对我们需要的几种模式进行详细的介绍。
为为为什么
2022/08/06
1.1K0
React核心原理与虚拟DOM
JSX,既不是字符串也不是HTML,本质上是一个 JavaScript 的语法扩展,且更接近于JavaScript,是通过React.createElement()创建的一个对象,称为React 元素。
夏天的味道123
2022/09/28
2K0
react-react-dom v6 知识整合
1. BrowserRouter / HashRouter 相当于容器(类似router-view),用于指定路由的模式
用户9914333
2022/12/14
6.4K0
react-react-dom v6 知识整合
React prop类型检查与Dom
当应用不断增长时,可以用过类型检查发现很多bug。对于某些应用,可以使用JavaScript扩展工具来完成,比如使用  Flow 或 TypeScript 来检查整个工程。除了引入外部工具之外,React也提供了参数类型检查的功能,只需要为每一个属性指定一个 propTypes 即可:
随风溜达的向日葵
2018/08/02
1.7K0
Bump react-dom from 16.3.2 to 16.3.3 in /react-16.3
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
2014v
2020/04/01
5780
Bump react-dom from 16.3.2 to 16.3.3 in /react-16.3
Windows凭据不工作
如果不是敲错IP、用户名、密码,报凭据不工作,一般情况下执行这几句命令后重启远程服务就正常了
Windows技术交流
2021/06/15
6.2K0
SPA应用路由器如何工作?
SPA(single page application)-单页面应用有两个特点,一是路由控制,二是模板渲染。通过路由器,可以在不reload页面的情况下,实现页面部分刷新。那么,最关键的地方,就是如何设计路由器,如何让路由器工作?
娜姐
2022/05/13
1.6K0
SPA应用路由器如何工作?
React虚拟DOM是个什么套路?
React最大的亮点就是快!天下武功,唯快不破,它走的就是这条路。那么它的快是如何达成的呢?是通过虚拟DOM,也就是它所说的Virtual DOM了。 那这个虚拟DOM,它到底是个什么东西呢?一句话,它是一种JS的数据结构。 这个结构是怎么生成,怎么来的?咱们暂且不管,这方面自有React的diff算法搞定。我们要做的是正确的理解它。 我们大家都知道HTML的页面是由一层一层,一级一级的DOM节点,互相嵌套而成的。对于DOM的任何操作,文字啊、大小、位置、颜色等,只要有一点点改动,整个页面DOM重绘,而众所
web前端教室
2018/02/06
7130
react-router-dom 实现路由跳转
稍微改变一下 create-react-app 创建后的src目录, 这里目录和vue相似
yangdongnan
2019/06/11
6.3K0
react-router-dom 混合化路由
混合化路由 HashRouter 这个标签只能有一个子元素。 import React from 'react' import { Select } from 'antd' import { BrowserRouter, Route, Router, Link, HashRouter, Switch, Redirect } from 'react-router-dom'; import homepage from './homepage' import qingpage from './qing.js'
用户4344670
2020/02/13
6200
react-router-dom 混合化路由

相似问题

React路由器Dom NavLink和链接不工作

111

React路由器-dom链接不工作,当我点击它

11

react路由器-dom useHistory()不工作

75

React路由器-dom导航不工作

15

React路由器Dom链接不更改URL

161
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文