Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 反应路由器:更改URL但不呈现组件_Reactjs_React Router_Material Ui - Fatal编程技术网

Reactjs 反应路由器:更改URL但不呈现组件

Reactjs 反应路由器:更改URL但不呈现组件,reactjs,react-router,material-ui,Reactjs,React Router,Material Ui,作为一个反应和材料界面的新手,我对一个路由问题感到绝望 单击按钮时,URL会更改,但由于某些原因,组件不会呈现。我已经尝试了这里提供的关于StackOverflow的几乎所有可能的解决方案。什么都不管用。也许你能找到问题所在 这是我的密码: import React from 'react' import { Button } from '@material-ui/core' import { BrowserRouter } from 'react-router-dom' import { L

作为一个反应和材料界面的新手,我对一个路由问题感到绝望

单击按钮时,URL会更改,但由于某些原因,组件不会呈现。我已经尝试了这里提供的关于StackOverflow的几乎所有可能的解决方案。什么都不管用。也许你能找到问题所在

这是我的密码:

import React from 'react'

import { Button } from '@material-ui/core'
import { BrowserRouter } from 'react-router-dom'
import { Link, LinkProps } from 'react-router-dom'

const Spielwiese = React.forwardRef<HTMLAnchorElement, LinkProps>(
  (props, ref) => <Link innerRef={ref as any} {...props} />
)

const Favoriten = React.forwardRef<HTMLAnchorElement, LinkProps>(
  (props, ref) => <Link innerRef={ref as any} {...props} />
)

const LandingPage = () => {
  const classes = useStyles()

  return (
    <div className="App">
      <BrowserRouter>
        <Button
          component={Spielwiese}
          to="/spielwiese"
        >
          Dinge finden!
        </Button>
        <Button
          component={Favoriten}
          to="/favoriten"
        >
          Meine Favoriten!
        </Button>
      </BrowserRouter>
    </div>
  )
}

export default LandingPage

提前多谢

嗯,我看不出Spielwiese和Favoriten之间的区别,这可能是原因:?

您必须为BrowserRouter中的每个组件定义路由。否则,您将无法导航应用程序

有关解决方案,请参见沙盒:

此外,您应该将登录页面内容分离到它自己的组件中。然后,您还将为该组件定义一条管线

App.js LandingPage.js
@运行时错误请尝试下面我的解决方案,并让我知道这是否有帮助。克里斯托弗·Ngo救援:工作得很好,谢谢!有没有办法去掉下划线?@RuntimeError我相信你可以忽略它:啊,成功了;
import React from "react";
import ReactDOM from "react-dom";

import { BrowserRouter, Route } from "react-router-dom";
import LandingPage from "./LandingPage";
import Spielwiese from "./Spielwiese";
import Favoriten from "./Favoriten";

const App = () => {
  return (
    <div className="App">
      <BrowserRouter>
        <Route component={LandingPage} path="/" exact />
        <Route component={Spielwiese} path="/spielwiese" />
        <Route component={Favoriten} path="/favoriten" />
      </BrowserRouter>
    </div>
  );
};

export default LandingPage;

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);
import React from "react";
import { Button } from "@material-ui/core";
import { Link } from "react-router-dom";

const LandingPage = () => {
  return (
    <div className="App">
      <Link to="/spielwiese">
        <Button>Dinge finden!</Button>
      </Link>
      <Link to="/favoriten">
        <Button>Meine Favoriten!</Button>
      </Link>
    </div>
  );
};

export default LandingPage;