github 프로필 뷰어를 사용하면 사용자 이름별로 프로필을 검색 할 수 있습니다. 기본 상태에서 내 자신의 github 사용자 이름을 제공하여 방문 페이지가 내 자신의 github 프로필이되도록했습니다. 검색 창에 이름을 입력하여 프로필을 검색 할 수 있지만 사용자를 검색하려고 할 때마다 ajax
통화가 작동하지 않지만 동일한 기능이 내 사용자 이름에 유효한 데이터를 반환합니다. 다음과 같이 내가 점점 오전 오류 : -검색 쿼리에서 Ajax 호출이 작동하지 않습니다.
class App extends Component{
constructor(props){
super(props);
this.state = {
username: 'kinny94',
userData: [],
userRepos: [],
perPage: 5
}
}
getUserData(){
$.ajax({
url: 'https://api.github.com/users/' + this.state.username + '?client_id=' + this.props.clientId + '&client_secret=' + this.props.clientSecret,
dataType: 'json',
cache: false,
success: function(data){
this.setState({
userData: data
});
console.log(data);
}.bind(this),
error: function(xhr, status, err){
this.setState({
username: null
});
alert(err);
}.bind(this)
});
}
getUserRepos(){
$.ajax({
url: 'https://api.github.com/users/' + this.state.username + '/repos?per_page='+ this.state.perPage +'client_id=' + this.props.clientId + '&client_secret=' + this.props.clientSecret + '&sort=created',
dataType: 'json',
cache: false,
success: function(data){
this.setState({
userRepos: data
});
}.bind(this),
error: function(xhr, status, err){
this.setState({
username: null
});
alert(err);
}.bind(this)
});
}
handleformSubmit(username){
this.setState({
username: username
}, function(){
this.getUserData();
this.getUserRepos();
})
}
componentDidMount(){
this.getUserData();
this.getUserRepos();
}
render(){
return(
<div>
<Search onFormSubmit={this.handleformSubmit.bind(this)}/>
<Profile {...this.state}/>
</div>
)
}
}
export default App;
를 다음과 같이 내 검색 파일이
class Search extends Component{
onSubmit(e){
e.preventDefault();
let username = this.refs.username.value.trim();
if(!username){
alert('Please Enter a username!');
return;
}
this.props.onFormSubmit(username);
this.refs.username.value = '';
}
render(){
return(
<div>
<form onSubmit={this.onSubmit.bind(this)}>
<label>Search Github Users </label>
<input type="text" ref="username" className="form-control" />
</form>
</div>
)
}
}
내 질문을 다음과 같다
Uncaught TypeError: $.ajax is not a function
내 주요 App.jsx 클래스는 동일한 ajax
이 내 사용자 이름에 대한 작업을 호출하면 새 무작위 사용자 이름이 작동하지 않는 이유는 무엇입니까?
그냥 제안. JQuery를로드하는 중 ajax를 통해 API 호출을 수행하는 경우 Axios 또는 Superagent와 같은 다른 간단한 라이브러리를 사용하거나 API 호출을 수행하는 것이 유일한 목적 인 경우 API를 가져올 수 있습니다. –