每次都呈现React router v4默认页面

时间:2018-02-26 23:29:22

标签: reactjs react-router-v4

我正在尝试让默认页面正常工作,但会发生的是每次都在渲染它。这就像Switch不会仅在匹配的第一条路线上停止。

这是我的代码:

index.js

ReactDOM.render(
    <BrowserRouter>
        <Provider store={store}>
            <Switch>
                <App/>
            </Switch>
        </Provider>
    </BrowserRouter>,
    document.getElementById("root")
);

App.js

class App extends React.Component {
    ...
    render() {
        return (
            <div>
                <AppGuest location={location}/>
                <GuestRoute location={location} component={ReservationsPage}/>
            </div>
        );
    }
}

AppGuest.js

class AppGuest extends React.Component {
    componentDidMount() {
    }

    render() {
        const { location} = this.props;
        return (
            <div>
                <GuestRoute exact location={location} path="/" component={ReservationsPage}/>

                <GuestRoute exact location={location} path="/login" component={LoginPage}/>
                <GuestRoute exact location={location} path="/signup" component={SignupPage}/>
            </div>
        );
    }
}

这是我的GuestRoute.js

const GuestRoute = ({  component: Component, ...rest }) => (
  <Route
    {...rest}
    render={props =>
        <div>
            <Navigation/>
            <Component {...props} />
        </div>
    }
  />
);

是否有可能因为我有这么多div,Switch无法正确检测路线?

修改:尝试将<div>替换为<React.Fragment>[]结构,但我仍遇到同样的问题。

我想我会有一个包含所有路线的巨大索引文件。

0 个答案:

没有答案