2017-06-03 1 views
1

私のコンポーネントの変更小道具が反応jsのリファレンスをどのように使用するのか誰が知っていますか? onChange後どのように小道具を使用するかを設定するにはReact js

<MyComponent 
    ref={'input1'} 
    name={'input1'} 
    label={interestsName} 
    disabled={ false} 
    onChange={this.myFunction}/> 

私は小道具を使用状態なしREFを使用変更する場合があり

myFunction =()=>{console.log(this.rews[input1].props.disable);} 

で関数を呼び出しますか?私はこのコンポーネントのような多くの '15'コンポーネントを持っているからです。ありがとう。

+0

小道具は、関数呼び出しのほんの引数です、あなたがそれらを変更することはできませんすべての要素のために管理することができるためにそれを使用することができ、少なくとも悪いパターンです –

答えて

0

あなたはこのケースでREFを使用しないでください、あなたはあなたの子供の小道具を変更するために状態を使用する必要があります。

class MainComponent extends React.Component { 
    constructor(props) { 
    super(props) 
    this.state = { 
     disable: false, 
    }; 
    this.onChange = this.onChange.bind(this); 
    } 

    onChange() { 
    this.setState({ disable: true }); 
    } 

    <MyComponent 
    name="input1" 
    label={interestsName} 
    disabled={this.state.disable} 
    onChange={this.onChange} 
    /> 
} 

使用componentWillReceiveProps()<MyComponent>で新しい小道具値を検出します。

+0

私はこのコンポーネントで配列を使用していますが、これに対して1つのクリックで配列のすべてのコンポーネントを変更するための状態を使用できるかどうかです。 – Trik

+0

申し訳ありませんあなたの問題を理解できませんか? –

1

子クラスから小道具を変更することはできません。詳しくは、linkを参照してください。

機能を使用するために、状態を使用して変更イベントの値を変更できます。また、コンポーネントのプロパティを変更するロジックを維持する必要があるもう1つのことは、コンポーネント内にとどまるべきです。これは、さまざまなコンポーネントのさまざまな状態を維持するのに役立ちます。

class MyComponent extends React.Component { 
    constructor(props) { 
    this.state = { 
    disable: props.disabled 
    }; 
    } 

    myFunction() { 
    console.log(this.state); 
    } 
} 

あなたは、上記の構成要素を反復処理することができ、15回と異なる状態が

関連する問題