反応ルータ(v4)はホームページにアクセスしていますが、URLを解析してswitch文でレンダリングするとうまくいきます。反応ルータがページを変更していない
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'
const Home =() => <div>home page</div>
const About =() => <div>about page</div>
render((
<Router>
<Switch>
<Route path="/" component={Home} />
<Route path="/about" component={About} />
</Switch>
</Router>
), document.getElementById('root'))
問題であるかもしれない、私は、ApacheサーバとLaravel/PHPのバックエンドを使用していますので、URLはlocalhost/calendar/public
とlocalhost/calendar/public/about
のように見えます。ただし、別のルート(例:localhost/calendar/public/foo
)を使用するたびに、サーバーはページが存在しないことを返します。
EDIT
は、ここで私はそれが働いてしまった方法ですが、それは解決策よりもハックの多くのだと元の問題が発生した理由を、私はまだわかりません。
import { BrowserRouter as Router, Route, Switch } from 'react-router-dom'
const url = new URL(window.location.href)
const isDev = (url.host == "localhost")
const browserApp = (
<Router>
<Switch>
<Route exact path={`${isDev ? "/calendar/public/" : "/"}`} component={Home}/>
<Route path={`${isDev ? "/calendar/public/about" : "/about"}`} component={About}/>
</Switch>
</Router>
)
ステートレス機能コンポーネントです。 –
steless機能コンポーネントは何ですか?上記のもの? – Felix