Diciamo che ho nidificati componenti in questo modo:Reagire: bubbling degli eventi attraverso i componenti nidificate
<root />
<comp1 />
<comp2 />
<target id={this.props.id}>
<div>click me</div>
Voglio fare cliccando sul bersaglio eseguire una funzione di radice:
//on root component
this.action = function(id){}
Devo imposta manualmente una proprietà su ogni componente della catena, come nell'esempio del tutorial React? Jsfiddle
<root />
<comp1 clickHandler={this.action}/>
<comp2 clickHandler={this.clickHandler}/>
<target id={this.props.id} clickHandler={this.clickHandler} />
<div onClick={this.props.clickHandler.bind(this, this.props.id)}>click me</div>
O c'è qualche modo per bolla gli eventi fino, come in DOM normale?
Anche se questa è la risposta accettata, quella corretta è quella sotto riportata. –
Mentre {... this.props} funziona, rende davvero difficile ragionare sui componenti che vengono trasmessi, dopo aver mantenuto un progetto con centinaia di componenti che è impossibile da tracciare. – Patrick
@Patrick puoi provare [Redux] (http://redux.js.org/). Introduce un concetto 'selector', che ti permette di selezionare i puntelli da un archivio dati globale invece di passare oggetti di scena dal genitore – sundayku