2017-10-09 27 views
0

ルートパラメータを使用しようとしていますが、パラメータを取得できません。ルートパラメータが反応しない

ページには何も表示されません。未定義または空白のようです。

「wedding /:pageName」からどのようにパラメータを取得しますか?

ここには何が欠けていますか?それはparamsを得るための最善の方法ですか?

"pageName"はIDではありません。問題ですか?事前に

おかげ

マイApp.js

import React, { Component } from 'react'; 
 
import { BrowserRouter, Route } from 'react-router-dom'; 
 
import { connect } from 'react-redux'; 
 
import * as actions from '../actions'; 
 

 
import Header from './Header'; 
 
import Weddings from './Weddings'; 
 

 
class App extends Component { 
 
    render() { 
 
    return (
 
     <div className="container"> 
 
     <BrowserRouter> 
 
      <div className="container"> 
 
      <Header /> 
 
      <Route path="/wedding/:pageName" component={Wedding} /> 
 
      </div> 
 
     </BrowserRouter> 
 
     </div> 
 
    ); 
 
    } 
 
} 
 

 
export default connect(null, actions)(App);

Wedding.js

import React from 'react'; 
 
import WeddingPage from './weddings/WeddingPage'; 
 

 
const Wedding =() => { 
 
    return (
 
    <div> 
 
     <WeddingPage /> 
 
    </div> 
 
); 
 
} 
 

 
export default Wedding;

Weddi ngPage.js

import React, { Component } from 'react'; 
 

 
class WeddingPage extends Component { 
 
    render() { 
 
    return (
 
     <div> 
 
     {this.props.pageName} 
 
     </div> 
 
    ); 
 
    } 
 
} 
 

 
export default WeddingPage;

答えて

0

WeddingからWeddingPageに小道具を渡していないためです。

import React from 'react'; 
import WeddingPage from './weddings/WeddingPage'; 

const Wedding = props => { 
    return (
     <div> 
      <WeddingPage {...props} /> 
     </div> 
    ); 
} 

export default Wedding; 

WeddingPage.js:それにpropsを受け入れ、合格する

Wedding.jsニーズは、子供の

import React, { Component } from 'react'; 

class WeddingPage extends Component { 
    render() { 
    return (
     <div> 
     {this.props.match.params.pageName} 
     </div> 
    ); 
    } 
} 

export default WeddingPage; 
+0

それは魅力的なように働いた!ありがとう –

0

では、ルータを反応させ、あなたがあなたのケースではthis.props.match.params.pageName

+0

動作しませんでした。 "TypeError:未定義のプロパティ 'params'を読み取ることができません" –

0

としてルータのparamsにアクセスすることができ、最初のあなたは、ページ名を取得する必要があります this.props.match.params.pageName
さらに
<WeddingPage pageName={this.props.match.params.pageName} />

01のようweddingPageコンポーネントにページ名の小道具を渡すより様 Wedding成分中のparams
+0

私はこれを試しましたが、うまくいきませんでした。私はこのエラーが発生しました: "TypeError:不定のプロパティ '一致'を読み取ることができません –

関連する問題