2016-11-18 40 views
0

好吧,我的React-Router工作方式或多或少都是我想要的,但我的问题是:我现在需要在我的JS中添加一些功能。React-Router通过路由导航使用jQuery

示例:用户输入他们的详细信息并单击“登录”,我希望我的jQuery检查凭据是否正确以及是否更改到主页的路线。

我不知道,我会如何去做这件事。

这是我的阵营,路由器代码:

import React from 'react' 
import ReactDOM from 'react-dom'; 
import { Router, Route, hashHistory, Navigation } from 'react-router' 
import Login from './login' 
import Signup from './signup' 
import Home from './home' 


ReactDOM.render((
    <Router history={hashHistory}> 
    <Route path="/" component={Login}/> 
    <Route path="/signup" component={Signup}/> 
    <Route path="/home" component={Home}/> 
    </Router> 
), document.getElementById("app")) 

$("#loginBtn").click(
    function(){ 
     var email = $('loginEmail').val(); 
     var pass = $('loginpwd').val(); 

     /* Check to see if credential are correct. 
     * If so, change to '/home route 
     */ 
    } 
); 

任何想法,将不胜感激。谢谢:)

+0

为什么不创建来处理你打算在什么意义上使用jQuery – xiaofan2406

+0

做@ xiaofan2406什么的组成部分?我对此很陌生... –

+1

只需尝试Router.browserHistory.push('/ somepath');在你的点击处理程序?一般来说,像这样混合使用jQuery和React是一种反模式,最好将jQuery功能包装到组件中 –

回答

1

一种方法是如下:

const openAppRoute = (route) => { 
    // Summary: 
    //  Helper function for developers to navigation 
    //  to a different route programmatically. 
    hashHistory.push(route); 
}; 
window.openAppRoute = openAppRoute; 

$("#loginBtn").click(
    function(){ 
    var email = $('loginEmail').val(); 
    var pass = $('loginpwd').val(); 

    /* Check to see if credential are correct. 
    * If so, change to '/home route 
    */ 
    window.openAppRoute("/home"); 
    } 
); 
+0

非常感谢。这正是我需要的。 :) –