谁能告诉我如何返回上一页而不是特定路线?
使用此代码时:
var BackButton = React.createClass({ mixins: [Router.Navigation], render: function() { return ( <button className="button icon-left" onClick={this.navigateBack}> Back </button> ); }, navigateBack: function(){ this.goBack(); } });
收到此错误, goBack() 被忽略,因为没有路由器历史记录
这是我的路线:
// Routing Components Route = Router.Route; RouteHandler = Router.RouteHandler; DefaultRoute = Router.DefaultRoute; var routes = ( <Route name="app" path="/" handler={OurSchoolsApp}> <DefaultRoute name="home" handler={HomePage} /> <Route name="add-school" handler={AddSchoolPage} /> <Route name="calendar" handler={CalendarPage} /> <Route name="calendar-detail" path="calendar-detail/:id" handler={CalendarDetailPage} /> <Route name="info-detail" path="info-detail/:id" handler={InfoDetailPage} /> <Route name="info" handler={InfoPage} /> <Route name="news" handler={NewsListPage} /> <Route name="news-detail" path="news-detail/:id" handler={NewsDetailPage} /> <Route name="contacts" handler={ContactPage} /> <Route name="contact-detail" handler={ContactDetailPage} /> <Route name="settings" handler={SettingsPage} /> </Route> ); Router.run(routes, function(Handler){ var mountNode = document.getElementById('app'); React.render(<Handler /> , mountNode); });
我认为您只需要通过像这样初始化它来在路由器上启用 BrowserHistory :<Router history={new BrowserHistory}>。
<Router history={new BrowserHistory}>
在此之前,您应该要求BrowserHistory从'react-router/lib/BrowserHistory'
BrowserHistory
'react-router/lib/BrowserHistory'
我希望这会有所帮助!
更新:ES6 中的示例
const BrowserHistory = require('react-router/lib/BrowserHistory').default; const App = React.createClass({ render: () => { return ( <div><button onClick={BrowserHistory.goBack}>Go Back</button></div> ); } }); React.render(( <Router history={BrowserHistory}> <Route path="/" component={App} /> </Router> ), document.body);