2017-04-25 12 views
1

私が求めていることについて多くの質問と回答がありますが、私はそれを読んで正しく適用しているように感じています。毎回propsルートを使用して子供に小道具を渡します

出会いましょう= { タイトル: 'いくつかのタイトル'、 }

は、だから私はここに私の親コンポーネントを持っています。私はちょうどconsole.logthis.props私が見ることができないとき

Meteor.startup(() => { 
    render((
    <Router> 
     <div> 
     <Nav /> 
     <Route exact path="/" component={Start} dataMeeting={meeting} /> 
     <Route path="/app" component={App} /> 
     <Modal /> 
     </div> 
    </Router> 
), document.getElementById('render-target')); 
}); 

はその後、私のStart成分である私の他のファイルに私はconsole.logconsole.log

export default class Start extends Component { 
    render() { 
    console.log(this.props.dataMeeting); 
    return (
     <div className="home"> 
     <p>test</p> 
     </div> 
    ); 
    } 
} 

this.propsに私は戻って未定義得るか、およびオブジェクトの私のdataMeeting

なぜ私は誤解しているのですか?

ありがとうございます!

<Route path="/" render={()=><Start dataMeeting={meeting} />}/> 

@ToddChaffeが指摘したように、あなたはできる(ただしべきではありません)にcomponent小道具を使用します。

答えて

3

あなたがreact-router V4を使用しているように、あなたの代わりにcomponentrender小道具を使って、小道具を渡すことができルックス同じ方法:

<Route path="/" component={()=><Start dataMeeting={meeting} />}/> 

ただし、すべてのレンダリングでコンポーネントが再作成されます。

+0

ありがとうございました!私の頭を読んで何時間も読んでしまって、それがなぜ機能していないのか分からない。今感謝する:)再びありがとう! – PourMeSomeCode

+0

何も問題ありません、喜んで助けてください!最近、 'react-router'のドキュメントが動いています! :-) –

+1

コンポーネント '} />'を使用することもできます。そして、そうすると、すべてのレンダリングでコンポーネントを再作成するというデメリットがあります。これが 'レンダリング 'を使用する主な理由です。 –

0

これは文書化されていませんが、this.props.routeを使用してください。

export default class Start extends Component { 
    render() { 
    console.log(this.props.route.dataMeeting); 
    return (
     <div className="home"> 
     <p>test</p> 
     </div> 
    ); 
    } 
} 
+0

React Router

関連する問題