以下のコードでわかるように、私のajax(私はfetchを使用しています)は、AppSearch関数内のAppコンポーネントにあります。どのように私は委任し、独自のコンポーネントでajax呼び出しを行うことができますか?私は角度1から来て、サービスや工場のようなものがありますが、私はそれをどのように反応させるのか分かりません。代理人または代理店でAJAXを呼び出す
const App = React.createClass({
getInitialState() {
return {
username: '',
profiles: [],
noUser : false
}
},
handleInputChange(e) {
this.setState({
username: e.target.value
})
},
handleSearch() {
if (!this.state.username) {
alert('username cannot be empty');
return false;
}
fetch('https://api.github.com/search/users?q=' + this.state.username)
.then(response => {
return response.json()
}).then(json => {
this.setState({
profiles: json.items
})
if(json.items.length === 0){
this.setState({noUsers : true});
}else{
this.setState({noUsers : false});
}
})
},
render() {
return (
<div>
<input type="text" placeholder="Github username" onChange={this.handleInputChange} value={this.state.username} />
<button onClick={this.handleSearch}>Search</button>
{this.state.profiles.length > 0 &&
<Users profiles={this.state.profiles} />
}
{this.state.noUsers &&
<p>No users found.</p>
}
</div>
)
}
});
http://codepen.io/eldyvoon/pen/ENMXQzこのコードでは、多くのリファクタリングが必要です。
偉大な私は写真を得た。 –