2016-01-20 81 views
0

我有2個組件:第一組分和第二組分,其本身是組分的兒童,並且所述第一組件有一個孩子FIRST_CHILD。現在我想基於first_child中的元素是否已被點擊來更新(顯示/隱藏)第二個組件。兄弟姐妹組件之間的通信

回答

0

您可以使用下面提及的代碼

var FirstChild=React.createClass({ 
    render:function() 
    { 
    return(
     <div> 
     <h1>First Component Child</h1> 
     <button onClick={this.props.Click} >Click</button> 
     </div> 

    ) 
    } 
}); 
var First=React.createClass({ 
    render:function() 
    { 
    return(
     <div> 
     <h1>First Component</h1> 
     <FirstChild Click={this.props.click}/> 
     </div> 

    ) 
    } 
}); 
var Second=React.createClass({ 
    render:function() 
    { 
    return(
     <div> 

     <h1>Second Component</h1> 
     {this.props.isShow?<h1>Show</h1>:null} 
     </div> 

    ) 
    } 
}); 

var ParentComponent=React.createClass({ 
    getInitialState:function() 
    { 
    return{ 
     isShow:false 
    } 
    }, 
    ClickEvent:function() 
    { 
    alert('clicked'); 
    this.setState({isShow:true}); 
    }, 
    render:function() 
    { 
    return(
     <div> 
     <First click={this.ClickEvent} /> 
     <Second isShow={this.state.isShow}/> 
     </div> 

    ) 
    } 
}); 
React.render(
    <ParentComponent />, 
    document.getElementById('example') 
); 

Demo

+0

是的,這應該工作。但也許我還沒有足夠清楚: 一個元素是** NavBar **,另一個是** List **,並且該列表包含一個組件** ListItem **,它會生成一個** ListItem **爲數據庫中的每個項目。現在我已經爲所有這些項目提供了一個複選框,並且我希望使用此複選框作爲NavBar右側圖標的切換。如果沒有勾選複選框=>隱藏iconInNavbar;否則顯示它。 –