2016-08-12 20 views
1

こんにちは私は反応ルータ経由でクエリ文字列を介して情報を渡そうとしていますが、アクセスできません。私はステップを正しくたどったが、まだ何もしていないと思う。反応ルータ経由でクエリ文字列を渡す

var UserContainer = React.createClass({ 
contextTypes: { 
    router: React.PropTypes.object.isRequired 
}, 
getInitialState: function() { 
    return{ 
     id: this.props.data.id, 
     username: this.props.data.username, 
     html_url: this.props.data.html_url, 
     avatar_url: this.props.data.avatar_url 
    } 
}, 
handleUserClick: function(event) { 
    event.preventDefault(); 

    var id = this.state.id; 
    var username = this.state.username; 
    var html_url = this.state.html_url; 
    var avatar_url = this.state.avatar_url; 

    this.context.router.push({ 
     pathname: '/user', 
     query: { 
      id: id, 
      username: username, 
      html_url: html_url, 
      avatar_url: avatar_url 
     } 
    }); 
}, 

//ROUTED TO THIS COMPONENT 

var React = require('react'); 

var UserShowView = React.createClass({ 
contextTypes: { 
    router: React.PropTypes.object.isRequired 
}, 
componentDidMount: function() { 
    console.log(this.props.location.query) 
}, 
render: function() { 
    return(
     <div> 
      Hello 
     </div> 
    ) 
} 
}); 

// REACT_ROUTER 

var React = require('react'); 
var ReactRouter = require('react-router'); 
var Router = ReactRouter.Router; 
var Route = ReactRouter.Route; 
var hashHistory = ReactRouter.hashHistory; 
var IndexRoute = ReactRouter.IndexRoute; 

var UsersIndexContainer = require('../containers/UsersIndexContainer'); 
var UserShowContainer = require('../containers/UserShowContainer'); 

var routes = (
    <Router history={hashHistory}> 
    <Route path='/' component={UsersIndexContainer} /> 
    <Route path='user' component={UserShowContainer} /> 
    </Router> 
); 

module.exports = routes; 

私はこのエラーに

error

を得続けるしかし、あなたが見ることができるようにクエリ文字列は、ルータの設定の問題のようですね

enter image description here

+0

ルータの設定を表示できますか? 'UserShowView'は' Route'要素の直接の子ですか? – azium

+0

okもう2つの質問:a)どのバージョンのreact-routerとb)hashHistoryではなくbrowserHistoryで試してみましたか? – azium

+0

私はちょうど切り替えを試みた。同じこと。 –

答えて

0

存在します。代わりに、同じレベルで、「/」と「ユーザー」を宣言するのは、「ユーザー」内部「/」以下のように埋め込みを行いたい:

var routes = (
    <Router history={hashHistory}> 
    <Route path='/' component={UsersIndexContainer}> 
     <Route path='user' component={UserShowContainer} /> 
    </Route> 
    </Router> 
); 

は、この試してみるとそれが助けなら、私に知らせてください。

+0

ねえクマール。だから私はあなたが提供したコードを使用しようとしましたが、今私はクエリ文字列を取得しますが、UserShowViewコンポーネントはもうレンダリングされません。 –

+0

@AyazUddin実際のコードの一部が欠けているので、それがなければ手助けするのは難しいです。 UserShowView、UserShowContainer、UserContainerはすべて使用されている用語ですが、コードとの関連を確認することはできません。しかし、クエリパラメータに関する最初の質問に答えた場合は、これを回答として選択し、他の質問(および関連するコード)で新しいスレッドを開始することを検討することをお勧めします。 – KumarM

+0

実際に私はちょうど仕事をしなければなりません。ありがとう! –

関連する問題