이 튜토리얼의 Meteor and React에서 저자는 react-router v2-3을 사용합니다. 새로운 React-router v4를 사용하여이 작업을 수행하고 싶습니다. 이것에browserHistory.push ('/ login') 폼을 리얼토풋 라우터 V4의 대체 노드로 변경하십시오.
import React from 'react';
import { IndexLink, Link, browserHistory } from 'react-router';
export class Navigation extends React.Component {
logout(e) {
e.preventDefault();
Meteor.logout(function() {
browserHistory.push('/login');
});
}
render() {
return (
<nav className="navbar navbar-default">
<div className="container-fluid">
...
<div className="collapse navbar-collapse" id="main-nav">
<ul className="nav navbar-nav">
<li><IndexLink to="/" activeClassName="active">Dashboard</IndexLink></li>
<li><a href="#" onClick={this.logout}>Logout</a></li>
</ul>
</div>
</div>
</nav>
)
}
}
, V4 사용 :
import React from 'react'
import { NavLink } from 'react-router-dom'
export class Navigation extends React.Component {
logout(e){
e.preventDefault()
Meteor.logout(function() {
this.context.history.push('/login')
})
}
render() {
return (
<nav className='navbar navbar-default'>
<div className='container-fluid'>
...
<div className="collapse navbar-collapse" id="main-nav">
<ul className="nav navbar-nav">
<li><NavLink to="/" activeClassName="active">Dashboard</NavLink></li>
<li><NavLink to="/logout" activeClassName="active"
onClick={this.logout.bind(this)}>Logout</NavLink></li>
</ul>
</div>
</div>
</nav>
)
}
}
하지만 브라우저 나에게 오류를 console.logs : 그래서,이 코드를 변경 사용되는 반응 - 라우터 V2 것을하려고