2016-11-18 39 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

非常感謝。這正是我需要的。 :) –