Reactjs 在react路由器dom中获取404错误
我从dom开始。我的主页成功呈现,但当我点击Reactjs 在react路由器dom中获取404错误,reactjs,react-redux,react-router-v4,Reactjs,React Redux,React Router V4,我从dom开始。我的主页成功呈现,但当我点击链接组件提供的超链接时,它并没有重定向,但如果我手动点击url,它会给我404错误。请帮帮我好吗 这是我的配置文件 import React from 'react' import { render } from 'react-dom' import { createStore, applyMiddleware,compose } from 'redux' import { Provider } from 'react-redux' //import
链接组件提供的超链接时,它并没有重定向,但如果我手动点击url,它会给我404错误。请帮帮我好吗
这是我的配置文件
import React from 'react'
import { render } from 'react-dom'
import { createStore, applyMiddleware,compose } from 'redux'
import { Provider } from 'react-redux'
//import rootReducer from './reducers'
import createLogger from 'redux-logger'
import thunk from 'redux-thunk'
import {BrowserRouter} from 'react-router-dom'
import promise from "redux-promise-middleware"
import logger from "redux-logger"
import {fetchUsers} from "./action/UserAction"
import {fetchChart} from "./action/ChartAction"
import {fetchNames} from "./action/SearchAction"
import reducer from "./reducers"
import routes from "./routes"
const middleware = applyMiddleware(promise(), thunk, logger())
const store= createStore(reducer,middleware)
store.dispatch(fetchUsers());
store.dispatch(fetchChart());
render(
<Provider store={store}>
<BrowserRouter >
{routes}
</BrowserRouter>
</Provider>,
document.getElementById('root')
)
从“React”导入React
从'react dom'导入{render}
从“redux”导入{createStore,applyMiddleware,compose}
从“react redux”导入{Provider}
//从“./reducers”导入rootReducer
从“redux logger”导入createLogger
从“redux thunk”导入thunk
从“react router dom”导入{BrowserRouter}
从“redux承诺中间件”导入承诺
从“redux记录器”导入记录器
从“/action/UserAction”导入{fetchUsers}
从“/action/ChartAction”导入{fetchChart}
从“/action/SearchAction”导入{fetchNames}
从“/减速器”导入减速器
从“/routes”导入路由
const middleware=applyMiddleware(promise(),thunk,logger())
const store=createStore(减速机、中间件)
dispatch(fetchUsers());
store.dispatch(fetchChart());
渲染(
{routes}
,
document.getElementById('root'))
)
我的路线文件
import App from "./pages/App"
import Users from "./pages/Users"
import Charts from "./pages/Charts"
import React from "react"
import { Route } from "react-router-dom"
export default (
<switch>
<Route path="/" component={App}/>
<Route path="/users" component={Users}/>
<Route path="/charts" name="charts" component={Charts}/>
</switch>
);
从“/pages/App”导入应用程序
从“/pages/Users”导入用户
从“/pages/Charts”导入图表
从“React”导入React
从“react router dom”导入{Route}
导出默认值(
);
App.js
import {Link} from "react-router-dom"
import React from "react"
const App = () =>(
<div>
<h1> this is main page </h1>
<Link to="charts">charts</Link>
</div>
)
export default App
从“react router dom”导入{Link}
从“React”导入React
常量应用=()=>(
这是主页
图表
)
导出默认应用程序
Users.js
import React from "react"
const User = () =>(
<div>
<h1> this is user </h1>
</div>
)
export default User
从“React”导入React
常量用户=()=>(
这是用户
)
导出默认用户
Charts.js
import React from "react"
const Chart = () => (
<h1> this is chart </h1>
)
export default Chart
从“React”导入React
常数图=()=>(
这是图表
)
导出默认图表
更新1:
我不知道发生了什么事。但是我在routes.js中通过点击url改变了它的工作顺序。但是,如果我手动点击url或刷新url,它仍然不起作用。下面是我更新的routes.js
import App from "./pages/App"
import Users from "./pages/Users"
import Charts from "./pages/Charts"
import React from "react"
import { Route,Switch } from "react-router-dom"
export default (
<Switch>
<Route path="/charts" component={Charts}/>
<Route path="/users" component={Users}/>
<Route path="/" component={App}/>
</Switch>
);
import App from "./pages/App"
import Users from "./pages/Users"
import Charts from "./pages/Charts"
import React from "react"
import { Route,Switch } from "react-router-dom"
export default (
<Switch>
<Route exact path="/" component={App}/>
<Route exact path="/charts" component={Charts}/>
<Route exact path="/users" component={Users}/>
</Switch>
);
从“/pages/App”导入应用程序
从“/pages/Users”导入用户
从“/pages/Charts”导入图表
从“React”导入React
从“react router dom”导入{Route,Switch}
导出默认值(
);
更新2:
若我使用的是精确路径,那个么序列就无关紧要了。我想我没有正确理解确切路径的用法。但手动点击url或刷新对我来说仍然不起作用
my final routes.js
import App from "./pages/App"
import Users from "./pages/Users"
import Charts from "./pages/Charts"
import React from "react"
import { Route,Switch } from "react-router-dom"
export default (
<Switch>
<Route path="/charts" component={Charts}/>
<Route path="/users" component={Users}/>
<Route path="/" component={App}/>
</Switch>
);
import App from "./pages/App"
import Users from "./pages/Users"
import Charts from "./pages/Charts"
import React from "react"
import { Route,Switch } from "react-router-dom"
export default (
<Switch>
<Route exact path="/" component={App}/>
<Route exact path="/charts" component={Charts}/>
<Route exact path="/users" component={Users}/>
</Switch>
);
从“/pages/App”导入应用程序
从“/pages/Users”导入用户
从“/pages/Charts”导入图表
从“React”导入React
从“react router dom”导入{Route,Switch}
导出默认值(
);
在苦苦挣扎之后,我收到一篇SO帖子,说如果我的数据不是从后端映射的,我应该使用HashRouter。所以我改变了我的浏览器,所以我把我的代码改成了这个。但我不知道为什么浏览器路由器不工作
<Provider store={store}>
<HashRouter >
{routes}
</HashRouter>
</Provider>,
document.getElementById('root')
{routes}
,
document.getElementById('root'))
在苦苦挣扎之后,我收到一篇SO帖子,说如果我的数据不是从后端映射的,我应该使用HashRouter。所以我改变了我的浏览器,所以我把我的代码改成了这个。但我不知道为什么浏览器路由器不工作
<Provider store={store}>
<HashRouter >
{routes}
</HashRouter>
</Provider>,
document.getElementById('root')
{routes}
,
document.getElementById('root'))
如果您使用的是网页,请添加此
devServer: {
historyApiFallback: true,
}
使用BrowserRouter时,“历史APIfallback”应为true如果您使用的是webpack,请添加此选项
devServer: {
historyApiFallback: true,
}
当使用BrowserRouter时,historyApiFallback“应该是真的即使没有重定向,链接是否也在更改,并且在Oleya url正在更改且无错误时是否存在任何错误您能否从“react router”导入{Switch},并用Switch
替换Switch
是来自react router dom还是react router?我试过用前一个。没有luckI从react router使用它
即使没有重定向,链接也在更改,并且在Oleya url正在更改和没有错误时是否存在任何错误您可以从“react router”导入{Switch},并将Switch
替换为Switch
是从react router dom还是react router?我试过用前一个。没有luckI从react路由器使用它