Comment sélectionner certaines barres dans react.js?
Voici mon code:
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 (...);
}
Je souhaite utiliser ce composant React:
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>
)
}
});
Je veux exécuter la fonction handleClick10 et effectuer l'opération pour ma barre de progression sélectionnée. Mais le résultat que j'obtiens est:
You clicked: Progress1
TypeError: document.getElementById(...) is null
Comment puis-je sélectionner un certain élément dans react.js?
la source
Pour obtenir l'élément,
react
vous devez utiliserref
et à l'intérieur de la fonction, vous pouvez utiliser laReactDOM.findDOMNode
méthode.Mais ce que j'aime faire de plus c'est d'appeler l'arbitre juste à l'intérieur de l'événement
Ceci est un bon lien pour vous aider à comprendre.
la source
this.myTextInput
pour accéder.React.findDOMNode
me donnereact__WEBPACK_IMPORTED_MODULE_0___default.a.findDOMNode is not a function
React.findDOMNode
en mode strict.Vous pouvez remplacer
avec
la source
Étant donné que React utilise du code JSX pour créer un code HTML, nous ne pouvons pas référencer dom à l'aide de méthodes de régulation telles que documment.querySelector ou getElementById.
Au lieu de cela, nous pouvons utiliser le système de référence React pour accéder à Dom et le manipuler, comme indiqué dans l'exemple ci-dessous:
}
la source