react-router 返回一个页面你如何配置历史?
问题描述:
谁能告诉我如何返回上一页而不是特定路线?
使用此代码时:
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); });
第 1 个答案:
我认为您只需要通过像这样初始化它来在路由器上启用 BrowserHistory :<Router history={new
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);
这个问题在这里已经有了答案 :如何测试 Python 函数是否引发异常? (19 个回答)4年前关闭。我做了一个简单的测试用例:def setUp( ...