J'essaye mon premier morceau de React.js et je suis perplexe au début ... J'ai le code ci-dessous, qui rend un formulaire de recherche dans <div id="search"></div>
. Mais taper dans le champ de recherche ne fait rien.
Il manque probablement quelque chose en passant les accessoires et l'état de haut en bas, et cela semble être un problème courant. Mais je suis perplexe - je ne vois pas ce qui manque.
var SearchFacet = React.createClass({
handleChange: function() {
this.props.onUserInput(
this.refs.searchStringInput.value
)
},
render: function() {
return (
<div>
Search for:
<input
type="text"
value={this.props.searchString}
ref="searchStringInput"
onchange={this.handleChange} />
</div>
);
}
});
var SearchTool = React.createClass({
render: function() {
return (
<form>
<SearchFacet
searchString={this.props.searchString}
onUserInput={this.props.onUserInput}
/>
<button>Search</button>
</form>
);
}
});
var Searcher = React.createClass({
getInitialState: function() {
return {
searchString: ''
}
},
handleUserInput: function(searchString) {
this.setState({
searchString: searchString
})
},
render: function() {
return (
<div>
<SearchTool
searchString={this.state.searchString}
onUserInput={this.handleUserInput}
/>
</div>
);
}
});
ReactDOM.render(
<Searcher />,
document.getElementById('searcher')
);
(Finalement, j'aurai d'autres types de SearchFacet*
mais j'essaye juste de faire fonctionner celui-ci.)
this
à quel point dans le code? Essayer de se connecter Searcher.handleUserInput()
ou SearchFacet.handleChange()
ne fait rien.
this
lorsque vous saisissez le champ de texte. Il se peut que cethis
ne soit plus leSearcher
composant.