Ich versuche mein erstes Stück React.js und bin schon früh ratlos ... Ich habe den folgenden Code, in den ein Suchformular gerendert wird <div id="search"></div>
. Das Eingeben in das Suchfeld bewirkt jedoch nichts.
Vermutlich fehlt etwas, wenn man die Requisiten passiert und auf und ab geht, und dies scheint ein häufiges Problem zu sein. Aber ich bin ratlos - ich kann nicht sehen, was fehlt.
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')
);
(Irgendwann werde ich andere Arten von haben, SearchFacet*
aber ich versuche nur, diese zum Laufen zu bringen.)
this
an welcher Stelle im Code? Der Versuch, sich anzumelden Searcher.handleUserInput()
oder SearchFacet.handleChange()
macht nichts.
this
wenn Sie das Textfeld eingeben. Es könnte sein, dass diesthis
nichtSearcher
mehr die Komponente ist.