Ich bin ein Anfänger in der Reaktionsumgebung, daher mag meine Frage für viele von Ihnen grundlegend erscheinen. Aber glauben Sie mir, ich habe mich in diesem Teil festgefahren. Ich versuche, den Textfeld-Wert beim Klicken auf die Schaltfläche zu erhalten und den Wert an eine andere Funktion als Prop zu senden. Ich bin in der Lage, den Wert von Textfeld Feld zu extrahieren, aber auf dem Click-Ereignis, bekomme ich einen Fehler 'Property' Property von 'undefined' kann nicht gelesen werden.React.js onclick event: Ich kann die Eigenschaft 'requisiten' von undefined nicht lesen
hier sind die wichtigen Punkte: -
- termchange() wird zum Extrahieren des Eingabetextwert verwendet.
- handleclick wird zum Extrahieren von Textbox-Wert onclick-Ereignis verwendet.
- oncitychange ist eine Funktion, an die ich den Wert der Textbox senden muss (oncitychange() - Funktion ist in einer anderen Komponente).
Vielen Dank im Voraus.
hier ist mein Code: -
import React,{ Component } from 'react';
import ReactDom from 'react-dom';
class SearchBar extends Component {
constructor(props){
super(props);
this.state = {
cityname:''
}
}
render(){
return(
<div>
<span>Enter the city: </span>
<input type="text" id="txtbox" value={this.state.cityname}
onChange={event=>this.termchange(event.target.value)} />
<input type="submit" onClick={this.handleclick} />
</div>
);
}
termchange(cityname){
this.setState({cityname});
}
handleclick(){
this.props.oncitychange(cityname);
}
}
export default SearchBar;
während technisch nicht zwingend Objekt auf die Reaktion fest, in der Regel die Render-Methode definiert die letzte Methode sein sollte, nur ein Stil Tipp –
oh auch versuchen, Ihre Methoden in Ihrem Konstruktor zu binden, fügen Sie einfach eine neue Zeile zum Konstruktor und sagen 'this.handleclick = this.handleclick.bind (this)' das sollte Ihr Problem hoffentlich lösen, das Problem ist, dass dies 'zeigt nicht auf Ihre Komponente, sondern auf Ihre Methode, also müssen Sie' this 'so binden, dass es auf Ihren com verweist stattdessen. Sie müssen in Ihrem Klick-Handler auf den Status verweisen und 'cityname' sollte' this.state.cityname' sein und wenn Sie den Status setzen, sollte es 'this.setState {cityname: cityname}' sein. –