【发布时间】:2020-05-14 20:06:56
【问题描述】:
我是 React JS 的新手,我目前正在构建一个简单的应用程序。我正在使用 Route 在组件之间导航,一切正常,但是如果我在一个页面上并且我再次单击菜单以导航到该页面,它不会刷新其内容。
我只想让组件在每次单击项目菜单时刷新其内容。
这是我的侧边栏类:
class Sidebar extends Component {
constructor(props) {
super(props);
}
render() {
return (
<Router>
<Route render={({ location, history }) => (
<React.Fragment>
<SideNav
onSelect={(selected) => {
const to = '/' + selected;
if (location.pathname !== to) {
history.push(to);
}
}}>
<SideNav.Toggle />
<SideNav.Nav>
<NavItem eventKey="Cars">
<NavIcon>
Cars
</NavIcon>
</NavItem>
<NavItem eventKey="Bicycles">
<NavIcon>
Bicycles
</NavIcon>
</NavItem>
</SideNav.Nav>
</SideNav>
<main>
<Switch>
<Route exact path="/" component={props => <Home />} />
<Route
exact path="/Cars"
render={() => !isAllowed ?
<Home /> :
<Cars/>
} />
<Route
exact path="/Bicycles"
render={() => !isAllowed ?
<Home /> :
<Bicycles />
} />
</Switch>
</main>
</React.Fragment>
)}
/>
</Router>
)
}
}
这是我的汽车组件类:
import React, { Component } from 'react';
class Cars extends Component {
render() {
return (
<div style={{ textAlign: 'center', marginLeft: '295px' }} >
<form>
<h1>Hello</h1>
<p>Enter your car name:</p>
<input
type="text"
/>
</form>
</div>
)
}
}
export default Cars;
例如。如果我在输入中输入内容,然后单击项目菜单,我希望刷新该输入。
【问题讨论】:
-
我认为这不是加载新项目的正确方法,在 SPA 中我们不刷新页面,我们使用路由器从一个路由导航到另一个路由并加载组件
-
在这种情况下我应该如何刷新我的组件?基本上我在那里有一个表单,我想刷新输入,每次单击项目菜单时..
-
反应原生网页侧边菜单项点击刷新仪表板,我该怎么做
标签: reactjs routing routes react-router refresh