2017-02-17 6 views
8

親コンポーネントと子コンポーネントがあり、{... this.props}を使用して のプロパティを親から子に渡したい場合は、 ピクチャ内の任意のアクションまたはレデューサが必要ですかこれをする?あるコンポーネントでプロパティを定義し、reactJs内の他のコンポーネントに渡す方法は?

私の子コンポーネントは、このようなものです: -

import React, { Component } from 'react' 
import ReactDOM from 'react-dom' 

class SampleChild extends Component { 
    constructor(props) { 
    super(props) 
    } 
    render(){ 
    return(
     <div>This is Parent</div> 
     ) 
     } 
    } 

SampleChild.propTypes={ 
     Header:React.PropTypes.string.isRequired 
} 
export default SampleChild 

私の親コンポーネントは、このようなものです: - 今、私はSampleParentコンポーネントからSampleChildにヘッダープロパティを渡すことができますどのように

import React, { Component } from 'react' 
import ReactDOM from 'react-dom' 

class SampleParent extends Component { 
    constructor(props) { 
    super(props) 
    } 

    render(){ 
     return(
      <div><SampleChild {...this.props}/></div> 
    ) 
    } 
} 
export default SampleParent 

?私を助けてください。あなたはそれがダイナミックだ場合SampleParentはちょうど小道具としてそれを受け取ることを確認する必要がありSampleParentからSampleChildに来るすべての小道具を拡散しているので、

+0

私は理解していませんあなたの親子関係、私は子供を含む親は見えません。正反対の親を含む子供だけです。あれは正しいですか? –

+0

お子様が親をレンダリングしていますが、これはロジックの指示に反します。あなたの質問を明確にしてください。反応では、属性を介してプロパティを渡します: ''のように、それが役立つかどうかは分かりません。 –

+0

@VincasStonys私は私の質問を更新しました。私は、{... this.props}を使用して、親コンポーネントの子コンポーネントにヘッダープロパティを渡すことができます。 – jack123

答えて

5
<SampleParent Header="Hello from Parent" /> 

はあなたのためのトリックを行います。

静的な小道具の場合は、SampleParentの場合はdefaultPropsに定義することができ、常に同じ文字列を渡します。

SampleParent.defaultProps = { 
    Header: 'Hello from Parent' 
} 
+0

プロパティをとして渡していますが、あなたの回答が要件と一致していません。更新してください。また、あなたが行ったように直接渡したいと思っていません。 jack123

+0

@jackここで問題となるのは、 'SampleParent'コンポーネントに' Header'を設定していないことです。 'SampleChild'コンポーネントに渡されます。 –

+0

これは、子コンポーネントを定義して渡す方法を知りたいことです。 – jack123

1

"all"小道具を親から子に渡そうとしているだけの場合は、このようにすることができます。 SampleParentをレンダリングしているコンポーネントから

...

<SampleParent /> 

SampleParentコンポーネント:

import React, { Component } from 'react' 
import ReactDOM from 'react-dom' 
import SampleChild from './SampleChild'; 

class SampleParent extends Component { 
    render() { 
    return(
     <div> 
     <SampleChild {...this.props} /> 
     </div> 
    ) 
    } 
} 

SampleParent.defaultProps = { 
    Header: "Header from parent" 
} 

export default SampleParent; 

SampleChildコンポーネント:

import React, { Component } from 'react' 
import ReactDOM from 'react-dom' 

class SampleChild extends Component { 
    render() { 
    return(
     <div> 
     <div>This is the Header passed from parent:</div> 
     {this.props.Header} 
     </div> 
    ) 
    } 
} 

SampleChild.propTypes = { 
    Header: React.PropTypes.string.isRequired 
} 

export default SampleChild; 
+0

私は既にこのように使いたくないと言った: - 、SampleParent Componentでヘッダを定義してSampleChildに渡す方法はありますか? – jack123

+0

はいできます。 defaultPropsを使用できます。私はこの記事を編集しました。これはすでに答えられていることを実感しました! – grizzthedj

関連する問題