2017-03-08 18 views
0

1)この値をChild1コンポーネントの小道具として渡す方法 2)Child1コンポーネントに状態値を渡すだけで、Child1内に更新値が得られない -Reactjs兄弟コンポーネントが更新された状態値を取得しない

続く異なる物品 - 兄弟が、何も動作間の小道具を渡すことについて.. 親:

export default class Parent extends Component { 

    constructor(props) { 
    super(props); 
    this.state = { 
     toggledata: '', 
    }; 
    } 

    handleToggle(value) { //getting the updated value to 'value' 
    this.setState({ toggledata: value }); 
    } 

    render() { 
    return (
     <div> 
     <Child1 ToggleStatus={this.state.toggledata} /> 
     <Child2 callbackFromParent={this.handleToggle.bind(this)} /> 
     </div> 
    ); 
    } 
} 
Parent.propTypes = { 
    params: PropTypes.object, 
}; 

CHILD2:

class Child1 extends Component { 
constructor(props) { 
    super(props); 
    this.state = { 
     text: '', 
    }; 
    } 

    handleClick(event) { 
    this.setState({ text: 'green' },() => { 
     this.props.callbackFromParent(this.state.text); 
    }); 
    } 

render(){ 
return (
      <a onClick={() => { this.handleClick(event) }} href=""> 
      Click me 
      </a> 

    ); 
    } 
} 
export default Child1; 
+1

このコードでエラーが発生しているはずです。 –

答えて

0

あなたはコールバックにthisを束縛していませんでした。 あなたはthis.setStateがあなたの親のために呼び出されていない、それはChild2の中で呼び出されます。コンテキストthishandleToggleは、Child2からのものであり、バインドしていない場合はParentではありません。

<Child2 callbackFromParent={this.handleToggle.bind(this)} />

+0

次にChild2で起こっているクリックに対してthis.setStateを呼び出してそれを親コンポーネントに登録し、Child1に渡す - それは私の実際の質問です - 正しいかもしれないし、bindで更新したかもしれません。 – splendidDev

関連する問題