2016-08-18 21 views
0

this.propsには<Router>onUpdateからどうすればアクセスできますか?私は現在のルートが何であるか見ることができるようにする必要があります、私はthis.props.routeにアクセスする必要がありますそれはどのページ(name)を決定すると思います。 enter image description here私はそれのためのいくつかのリソースを見つけることができません。私は(今ではそれが何であるかのページを決定するwindow.locationのをチェックしますが、問題は、それは何が違うの静的なページを得るようにスラグである)このような私のコードを持っている:反応ルータへのアクセス方法

const logPageViews =() => { 
    if (_.startsWith(window.location.pathname, '/search/')) { 
    let query = window.location.pathname.replace('/search/', '').replace(/--/g, '/').replace(/-/g, '+'); 
    if (!_.isEmpty(window.location.search)) { 
     query += `&${window.location.search.replace('?', '')}`; 
    } 

    ga.pageview(`/search?query=${query}`); 
    } else { 
    ga.pageview(window.location.href.replace(window.location.origin, '')); 
    } 

    fbq.pageView(); 
} 

const reducer = combineReducers(reducers); 
const store = applyMiddleware(...middlewares)(createStore)(reducer, initialState); 

ReactDOM.render(
    <Provider store={store}> 
    <Router routes={getRoutes(store)} history={browserHistory} onUpdate={() => {logPageViews()}} /> 
    </Provider>, 
    document.getElementById('app') 
); 
+0

'logPageViews'を無名関数でラップするのではなく、直接呼び出すことは役に立ちますか?だから: 'onUpdate = {logPageViews}' –

+0

@MaartenBicknese 'this'はそれを行うときにまだ未定義です。 – index

答えて

0

私は2つの可能な答えを持っています。まず、このデモンストレーションのような州から現在のルートにアクセスする可能性がありますか? https://github.com/reactjs/react-router/issues/1539

第2に、getRoutes(store)を呼び出すと、ルート配列の最後の要素にアクセスできますか?

+0

最初のもの:https://github.com/reactjs/react-router/issues/1539#issuecomment-121499082またはhttps://github.com/reactjs/react-router/issues/1539#issuecomment-128403889を意味しますか?最初のリンクについては、私は 'routerStateChange'が何で、' onUpdate'関数で 'this'が未定義であるのか分かりません。 – index

+0

第2のリンク:私がしたことは、 'const allRoutes = getRoutes(store);'次に、私はすべての私の配列を取得します。私が 'console.log(allRoutes);を実行したときのルート' – index

関連する問題