Estoy probando mi primer fragmento de React.js y me quedé perplejo desde el principio ... Tengo el código a continuación, que genera un formulario de búsqueda en <div id="search"></div>. Pero escribir en el cuadro de búsqueda no hace nada.
Presumiblemente, algo está faltando al pasar los accesorios y el estado hacia arriba y hacia abajo, y esto parece un problema común. Pero estoy perplejo, no puedo ver lo que falta.
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')
);
(Eventualmente tendré otros tipos de SearchFacet*pero solo estoy tratando de que este funcione).
thisen qué punto del código? Intenta iniciar sesión Searcher.handleUserInput()o SearchFacet.handleChange()no hace nada.
thiscuando ingrese el campo de texto. Podría ser quethisya no sea elSearchercomponente.