¿Cómo selecciono ciertas barras en react.js?
Este es mi código:
var Progressbar = React.createClass({
getInitialState: function () {
return { completed: this.props.completed };
},
addPrecent: function (value) {
this.props.completed += value;
this.setState({ completed: this.props.completed });
},
render: function () {
var completed = this.props.completed;
if (completed < 0) { completed = 0 };
return (...);
}
Quiero usar este componente Reaccionar:
var App = React.createClass({
getInitialState: function () {
return { baction: 'Progress1' };
},
handleChange: function (e) {
var value = e.target.value;
console.log(value);
this.setState({ baction: value });
},
handleClick10: function (e) {
console.log('You clicked: ', this.state.baction);
document.getElementById(this.state.baction).addPrecent(10);
},
render: function () {
return (
<div class="center">Progress Bars Demo
<Progressbar completed={25} id="Progress1" />
<h2 class="center"></h2>
<Progressbar completed={50} id="Progress2" />
<h2 class="center"></h2>
<Progressbar completed={75} id="Progress3" />
<h2 class="center"></h2>
<span>
<select name='selectbar' id='selectbar' value={this.state.baction} onChange={this.handleChange}>
<option value="Progress1">#Progress1</option>
<option value="Progress2">#Progress2</option>
<option value="Progress3">#Progress3</option>
</select>
<input type="button" onClick={this.handleClick10} value="+10" />
<button>+25</button>
<button>-10</button>
<button>-25</button>
</span>
</div>
)
}
});
Quiero ejecutar la función handleClick10 y realizar la operación para mi barra de progreso seleccionada. Pero el resultado que obtengo es:
You clicked: Progress1
TypeError: document.getElementById(...) is null
¿Cómo selecciono cierto elemento en react.js?
fuente
Para obtener el elemento
react
, debe usarref
y dentro de la función puede usar elReactDOM.findDOMNode
método.Pero lo que más me gusta hacer es llamar al árbitro justo dentro del evento
Este es un buen enlace para ayudarte a descubrirlo.
fuente
this.myTextInput
para acceder.React.findDOMNode
me dareact__WEBPACK_IMPORTED_MODULE_0___default.a.findDOMNode is not a function
React.findDOMNode
en modo estricto.Usted puede reemplazar
con
fuente
Como React usa el código JSX para crear un HTML, no podemos hacer referencia a dom utilizando métodos de regulación como documment.querySelector o getElementById.
En cambio, podemos usar el sistema de referencia React para acceder y manipular Dom como se muestra en el siguiente ejemplo:
}
fuente