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.
thislorsque vous saisissez le champ de texte. Il se peut que cethisne soit plus leSearchercomposant.