反応成分をプロパティとして渡さない理由はありますか?

dwjohnston

と呼ばれるreactコンポーネントがあるとしましょう。これは、ThreeModule3つの任意のreactコンポーネント(または任意に定義されたdom要素)を連続して巧みに表示します。

この回答で提案さているよう、react要素を状態要素として設定し、それらをプロパティとして渡すことでこれを行うことができます

class ModA extends React.Component{
  render () {
    return <div> this is ModA</div>
  }
}

class ModB extends React.Component{
  render () {
    return <div> this is ModB</div>
  }
}
class ModC extends React.Component{
  render () {
    return <div> this is ModC</div>
  }
}

class ThreeMod extends React.Component{

  render() {
  return (<div className = "ThreeMod"> 
    This is ThreeMod
    <div className ="left">   
      {this.props.moda}
    </div> 

    <div  className ="middle"> 
     {this.props.modb}
    </div> 

    <div  className ="right"> 
      {this.props.modc}
    </div> 

  </div> ); 

  }
}

class App extends React.Component {


  constructor() {

    super(); 
    this.state = {
      moda: <ModA/> ,
      modb: <ModB/> ,
      modc: <ModC/> 
    }
  }

  render() {
    function getRandomMod() {
      let rand =Math.floor(Math.random() * Math.floor(4));
      switch (rand) {
        case 0 : return <ModA/> 
        case 1: return <ModB/> 
        case 2: return <ModC/> 
        default: return "random text"; 
      }        
    }

    return (
      <div className="App">
        This is App

        <button onClick = {() => {
          this.setState({moda: getRandomMod() }
          )}}>randomise left </button> 

        <button onClick = {() => {
          this.setState({modb: getRandomMod() }
        )}}>randomise middle  </button> 

        <button onClick = {() => {
          this.setState({modc: getRandomMod() }
        )}}>randomise right</button> 

        <ThreeMod
          moda={this.state.moda}
          modb={this.state.modb}
          modc={this.state.modc}
          /> 
      </div>
    );
  }
}

ReactDOM.render(<App />,   document.body
);
div {
  border: solid 1px black; 
  padding: 0.2em;
}

.ThreeMod {
  display:flex; 
  flex-flow: row; 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>


<div id = "react"/> 

これは、私がやりたいこと、つまり私が疑問に思っていることに対して正確に機能します。これは、物事を行うための間違った方法ですか?このようにしない理由(パフォーマンスなど)はありますか?

フェルゲレス

私は個人的にこのアプローチを使用していませんが、PropTypesドキュメントelement( "React要素")とnode( "レンダリングできるもの")が存在することは、サポートされている機能であることを示しています。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

cssプロパティをvuejs @ scrollと反応させる方法はありますか?

分類Dev

Liquibaseで実行時に引数としてプロパティ置換を渡す方法はありますか?例を教えてください。

分類Dev

反応でレンダリングされないプロパティとして渡される変数

分類Dev

あるインターフェイスプロパティのデータを「this」として別のプロパティに渡す方法はありますか?

分類Dev

反応中のコンポーネントにプロパティを割り当てるより簡潔な方法はありますか?

分類Dev

セッターでプロパティをrefパラメーターとして渡すことは可能ですか?c#(「プロパティまたはインデクサーをoutまたはrefパラメーターとして渡さない」ことは避けてください。)

分類Dev

リクエスト/レスポンスをパラメータとして渡さない理由はありますか?

分類Dev

Typescriptと反応する-Type {}にはtypeから次のプロパティがありません

分類Dev

このVueで計算されたプロパティが反応しないのはなぜですか?

分類Dev

ServletResponseをパラメーターとして渡す正当な理由はありますか?

分類Dev

「プロパティを分解できない」と反応する

分類Dev

「プロパティを分解できない」と反応する

分類Dev

オブジェクトのプロパティを個々のパラメータとして動的に渡す方法はありますか?

分類Dev

JavaFXのProperty#unbind()に引数としてプロパティを渡せないのはなぜですか?

分類Dev

アクティビティで「newInstance」パターンを使用しない理由はありますか?

分類Dev

列挙可能なプロパティと独自のプロパティの間に違いはありますか?

分類Dev

プロパティまたはインデクサーは、outまたはrefパラメーターとして渡されない場合がありますXamarin.Forms(C#)

分類Dev

Columns()プロパティを不適切に使用していますか?使用している場合、適切な回避策はありますか?

分類Dev

画像で機能しないプロパティをストレッチする方法はネイティブに反応しますか?

分類Dev

子供に渡すプロパティを反応させる

分類Dev

onClick リスナーは関数であると想定されていましたが、代わりにタイプ string 不明なイベント ハンドラー プロパティ onclick を取得しました。「onClick」のことですか?

分類Dev

何も変更しないcssプロパティはありますか?

分類Dev

Exchange EmailMessageのプロパティを転送しないでください-どこにありますか?

分類Dev

reduxから私のプロパティプロパティを読み取って反応できないのはなぜですか?

分類Dev

反応ネイティブでサポートされているスタイルプロパティのすべてのリストはどこにありますか?

分類Dev

反応ネイティブには、アプリが使用されていないとき、またはバックグラウンドモードで実行されている関数ライフサイクルがありますか?

分類Dev

計算されたプロパティを使用するときにVuex $ storeプロパティが反応しない

分類Dev

メソッド内でVue.jsデータプロパティを引数として渡さずに使用するのは間違っていますか?

分類Dev

あるプロパティ値を、関数を介して値が計算される別のプロパティに引数として渡すことはできますか?(クラスを含むJavascript ES6の場合)

Related 関連記事

  1. 1

    cssプロパティをvuejs @ scrollと反応させる方法はありますか?

  2. 2

    Liquibaseで実行時に引数としてプロパティ置換を渡す方法はありますか?例を教えてください。

  3. 3

    反応でレンダリングされないプロパティとして渡される変数

  4. 4

    あるインターフェイスプロパティのデータを「this」として別のプロパティに渡す方法はありますか?

  5. 5

    反応中のコンポーネントにプロパティを割り当てるより簡潔な方法はありますか?

  6. 6

    セッターでプロパティをrefパラメーターとして渡すことは可能ですか?c#(「プロパティまたはインデクサーをoutまたはrefパラメーターとして渡さない」ことは避けてください。)

  7. 7

    リクエスト/レスポンスをパラメータとして渡さない理由はありますか?

  8. 8

    Typescriptと反応する-Type {}にはtypeから次のプロパティがありません

  9. 9

    このVueで計算されたプロパティが反応しないのはなぜですか?

  10. 10

    ServletResponseをパラメーターとして渡す正当な理由はありますか?

  11. 11

    「プロパティを分解できない」と反応する

  12. 12

    「プロパティを分解できない」と反応する

  13. 13

    オブジェクトのプロパティを個々のパラメータとして動的に渡す方法はありますか?

  14. 14

    JavaFXのProperty#unbind()に引数としてプロパティを渡せないのはなぜですか?

  15. 15

    アクティビティで「newInstance」パターンを使用しない理由はありますか?

  16. 16

    列挙可能なプロパティと独自のプロパティの間に違いはありますか?

  17. 17

    プロパティまたはインデクサーは、outまたはrefパラメーターとして渡されない場合がありますXamarin.Forms(C#)

  18. 18

    Columns()プロパティを不適切に使用していますか?使用している場合、適切な回避策はありますか?

  19. 19

    画像で機能しないプロパティをストレッチする方法はネイティブに反応しますか?

  20. 20

    子供に渡すプロパティを反応させる

  21. 21

    onClick リスナーは関数であると想定されていましたが、代わりにタイプ string 不明なイベント ハンドラー プロパティ onclick を取得しました。「onClick」のことですか?

  22. 22

    何も変更しないcssプロパティはありますか?

  23. 23

    Exchange EmailMessageのプロパティを転送しないでください-どこにありますか?

  24. 24

    reduxから私のプロパティプロパティを読み取って反応できないのはなぜですか?

  25. 25

    反応ネイティブでサポートされているスタイルプロパティのすべてのリストはどこにありますか?

  26. 26

    反応ネイティブには、アプリが使用されていないとき、またはバックグラウンドモードで実行されている関数ライフサイクルがありますか?

  27. 27

    計算されたプロパティを使用するときにVuex $ storeプロパティが反応しない

  28. 28

    メソッド内でVue.jsデータプロパティを引数として渡さずに使用するのは間違っていますか?

  29. 29

    あるプロパティ値を、関数を介して値が計算される別のプロパティに引数として渡すことはできますか?(クラスを含むJavascript ES6の場合)

ホットタグ

アーカイブ