当前位置: 首页 > 知识库问答 >
问题:

Reactjs路由不导航

李法
2023-03-14

我目前有一个react应用程序,我正在工作,路由是错误的。我以前已经像这样设置了react应用程序及其路由,但是当试图路由到“details”组件时,只有url发生了变化,但是组件没有加载。多一双眼睛就能看到我错过了什么。我将路线设置为:

    < li>index.js:
    import React from 'react';
    import ReactDOM from 'react-dom';
    import App from './App';
    import { Router } from "react-router-dom";
    import { createBrowserHistory } from "history";
    
    const history = createBrowserHistory();
    
    const render = () => {
        ReactDOM.render(
            <Router history={history}>
                <App />
            </Router>,
            document.getElementById('root'),
        );
    };
    
    render();
    import React from 'react';
    import {Route, Switch} from 'react-router-dom';
    import { BreweryPage } from './route.js';
    
    function App() {
      return (
          <>
            <Switch>
              <Route exact path="/" component={BreweryPage}/>
            </Switch>
          </>
      );
    }
    
    export default App;
    import React from 'react';
    import PropTypes from 'prop-types';
    import { Route, Switch, withRouter } from 'react-router-dom';
    import { BreweryPage, BreweryDetailPage } from './pages';
    import {AppContainer} from "../../common/header";
    
    const BreweryHomePage = ({ match }) => (
        <AppContainer>
            <Switch>
                <Route exact path={`${match.url}`} component={BreweryPage} />
                <Route exact path={`${match.url}/details/:breweryid`} component={BreweryDetailPage} />
            </Switch>
        </AppContainer>
    );
    
    BreweryHomePage.propTypes = {
        match: PropTypes.shape({
            url: PropTypes.string,
        }),
    };
    
    BreweryHomePage.defaultProps = {
        match: {
            url: '',
        },
    };
    
    export default withRouter(BreweryHomePage);

根“/”路径组件加载,但我无法获取详细信息组件组件在使用history进行路由时呈现。push(path)使用const history = useHistory();.

共有1个答案

姚雅珺
2023-03-14

像这样做

1-索引。js应该这样:

import React from "react"
import ReactDOM from "react-dom"
import App from "./App"
import { BrowserRouter } from "react-router-dom"

const app = (
  <React.StrictMode>
    <BrowserRouter>
      <App />
    </BrowserRouter>
  <React.StrictMode/>
)

ReactDOM.render(app, document.getElementById("root"))

您必须添加浏览器路由器才能使用导航

2-可以像这样在App.js中使用BreweryPage:

import React from 'react'; 
import {Route, Switch} from 'react-router-dom';
import { BreweryPage } from './route.js';

function App() { 
return ( 
<>
<BreweryPage/> 
</> 
); 
}
export default App;

3-route.js

import React from 'react'; 
import PropTypes from 'prop-types'; 
import { Route, Switch, withRouter } from 'react-router-dom'; 
import { BreweryPage, BreweryDetailPage } from './pages'; 
import { createBrowserHistory } from "history";
import {AppContainer} from "../../common/header";
const newHistory = createBrowserHistory();

const BreweryHomePage = (props) => (
<Router history={newHistory}>
<Switch> 
<Route exact path="/" component={BreweryPage} /> 
<Route path="/details/:breweryid" component={BreweryDetailPage} /> 
</Switch>
</Router>
);


export default withRouter(BreweryHomePage);
 类似资料:
  • 问题内容: 我正在尝试使用ReactJS创建一个简单的Webapp,我想使用React-Bootstrap提供的。 我创建了一个文件,其中包含一个类,用于将和和路由与文件分开。但是,这两个部分似乎都不起作用。当我加载页面时,它只是空的,没有导航栏。谁能发现一个错误? Navigation.js: App.js: 我尝试使用已经包含的from ,这导致了相同的结果。 为了完整性,Page.js: 问

  • 我有以下配置(用构建) 我的路由是从另一个组件调用的,但是当我试图查看它时,我看不到我的页面详细信息,而是看到它的父页面。

  • 路由管理 路由管理主要是为了实现页面切换。Flutter中,页面称为路由Router,由导航器Navigator控制,导航器维护一个路由栈,路由入栈(push)则打开新页面,路由出栈(pop)则关闭页面。Flutter中的页面切换就是导航器指挥路由入栈出栈的过程,即:Navigator来push/pop页面Route的过程。写写常用场景的demo。 页面跳转 核心方法:Navigator.push

  • 我正在尝试重定向仪表板页面上的登录用户。 这是我的代码: 当用户登录时,我的应用程序正在运行一个带有方法的循环。 我已经在StackOverflow上考虑过两个类似的问题,它们是: react超出最大调用堆栈大小 React-router,onEnter导致身份验证无限循环 我两种都试过,但不幸的是,那些例子对我没有帮助。(我也是React的初学者) 请告诉我我的代码有什么问题?

  • 我有以下index.html。我正在尝试使用路由器。 我得到了以下错误:如何克服这一点

  • 问题内容: 我正在研究一个示例reactjs应用程序(在学习过程中)。我有一个页面,其中列出了用户列表和一个添加按钮以添加新用户。 当我单击添加按钮时,我应该导航到用户表单以创建新用户。 在用户表单中单击“提交”按钮后,它应导航回到第一页,在该页面中应列出用户列表以及新用户。 如何在页面之间导航做出反应? 问题答案: 您可以使用React Router来完成。这是React Router教程。 用