rect-router-dom 4.0如何在js中控制跳转,url变化了,this.prop.children却没有更新
主页面
// index.js
ReactDOM.render((
<Router history={history}>
<App>
<Switch>
<Route path='/home' component={home} />
<Route path='/mudidi' component={mudidi} />
<Route path='/zhuanti' component={zhuanti} />
<Route path='/daren' component={daren} />
<Route path='/zijiayou' component={zijiayou} />
</Switch>
</App>
</Router>
), document.getElementById('root'));
页面1
在页面中js跳转是可以的
// view/mudidi.js
go() {
this.props.history.push('/home')
}
<div onClick={this.go.bind(this)}>mudidi</div>
组件navigator.js
组件中的js控制跳转 不行 报push is a undefined
// components/navigator.js
import createBrowserHistory from 'history/createBrowserHistory';
const history = createBrowserHistory()
class Navigation extends Component {
goNav(item,index) {
// 这两种方式都不行
history.push('/' + item.path)
this.props.history.push('/' + item.path)
}
render() {
let navHtml = this.props.navData.map((item, index)=> {
let LinkClass = index === this.state.activeIndex ? 'active' : '';
return <div key={index} className={'child ' + LinkClass} onClick={this.goNav.bind(this, item, index)}>
<span>{item.name}</span>
</div>
})
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你这样写法,Navigation的props是没有history属性的,需要通过withRouter这个高阶组件包一下Navigation:
更多参考:https://reacttraining.com/rea...
你是想问没有this.props 方法?
这样?
问题解决了吗