私は反応フレームワークの初心者ですから、私の質問はあなたの多くにとって基本的に見えるかもしれません。しかし、私はこの部分に立ち往生していると私を信じてください。 私は、ボタンのクリックでテキストボックスの値を取得し、その値を他の関数に小道具として送信しようとしています。 私はtextboxフィールドの値を抽出できますが、clickイベントでは、 'プロパティを読み取れません'というプロンプト 'undefined'が表示されます。ここでReact.js onclickイベント:未定義のプロパティ 'props'を読み取ることができません
は重要なポイントである: - )
- termchange(テキスト入力値を抽出するために使用されます。
- handleclickは、テキストボックス値onclickイベントの抽出に使用されます。
- oncitychangeは、テキストボックス (oncitychange()関数は別のコンポーネントの内部にあります)の値を送信した関数です。
ありがとうございます。ここ
は私のコードです: -
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;
にタイトになりますスタイルのヒント –
また、あなたのコンストラクタであなたのメソッドをバインドしようとすると、単にコンストラクタに新しい行を追加してうまくいけば、あなたの問題を解決するはずです 'this.handleclick = this.handleclick.bind(this)'と言う、問題は 'this 'あなたのコンポーネントではなくあなたのメソッドを指しているので、' this'をバインドしてあなたのcomを指すようにする必要があります代わりにポポント。クリックハンドラで状態を参照する必要があります。また、 'cityname'は' this.state.cityname'でなければなりません。状態を設定するときは 'this.setState {cityname:cityname} 'にする必要があります –