Javascript 在reactjs中获取api时出错
我使用api键和输入框中的数据获取api,我得到 必须提供查询的错误数组。我可以从中获取数据 输入框。下面是代码Javascript 在reactjs中获取api时出错,javascript,reactjs,Javascript,Reactjs,我使用api键和输入框中的数据获取api,我得到 必须提供查询的错误数组。我可以从中获取数据 输入框。下面是代码 class App extends Component { constructor() { super() this.state = { movie: '', movieList: [] }; this.onGetMovie = this.onGetMovie.bind(this); } onGetMovie(data) { this.s
class App extends Component {
constructor() {
super()
this.state = { movie: '', movieList: [] };
this.onGetMovie = this.onGetMovie.bind(this);
}
onGetMovie(data) {
this.setState({ movie: data });
console.log("--------");
}
componentDidMount() {
console.log("*************");
fetch('https://api.themoviedb.org/3/search/movie?query=' + this.state.movie + '&api_key='+API_KEY)
.then(res => res.json())
.then(movieList => {
this.setState({ movieList: movieList.results });
console.log(movieList);
})
}
render() {
return (
<div className="App">
<header className="App-header">
<img src={icons} className="App-logo" alt="logo" />
<h1 className="App-title">
Movies<span className="secondary">Db</span>
</h1>
</header>
<SearchBar handleToParent={this.onGetMovie} />
<p>Parent : {this.state.movie}</p>
</div>
);
}
}
export default App;
类应用程序扩展组件{
构造函数(){
超级()
this.state={movie:'',movieList:[]};
this.onGetMovie=this.onGetMovie.bind(this);
}
onGetMovie(数据){
this.setState({movie:data});
控制台日志(“----------”);
}
componentDidMount(){
console.log(“****************”);
取('https://api.themoviedb.org/3/search/movie?query=“+this.state.movie+”&api_key=”+api_key)
.then(res=>res.json())
。然后(电影列表=>{
this.setState({movieList:movieList.results});
控制台日志(movieList);
})
}
render(){
返回(
电影数据库
父:{this.state.movie}
);
}
}
导出默认应用程序;
位于组件状态的电影
尚不可用于组件安装
调用
onGetMovie
后(甚至通过onGetMovie
方法)应调用fetch
,您将获得执行查询所需的所有数据。位于组件状态的movie
对于componentDidMount
尚不可用
fetch
应该在调用onGetMovie
后调用(甚至通过onGetMovie
方法),您将获得执行查询所需的所有数据。您能告诉我们确切的错误吗?或者它是机密的?它要求query
,因为您没有设置它,因为正在componentDidMount()中调用fetchApi
将在呈现组件后立即调用。请查看文档。{错误:数组(1)}错误:[“必须提供查询”]proto:ObjectGET 422()你能告诉我们确切的错误吗?或者它是机密的?它要求query
,因为您没有设置它,因为正在componentDidMount()中调用fetchApi
将在呈现组件后立即调用。请查看文档。{错误:数组(1)}错误:[“必须提供查询”]proto:ObjectGET 422()我在onGetMovie()中插入了fetch,但仍然得到了相同的结果error@AbhishekKonnur您仍然引用this.state.movie
?onGetMovie(数据){this.setState({movie:data});fetch(''+this.state.movie+'&api_key='+api_key.)。然后(res=>res.json())。然后(movieList=>{this.setState({movieList:movieList.results});console.log(movieList);}}状态
未同步填充,因此在调用设置状态
后无法立即访问它。只需在您的查询URL中使用data
变量。现在,在使用linkI中的数据后,我就可以在onGetMovie()中插入fetch,但我仍然得到相同的结果error@AbhishekKonnur您仍然引用this.state.movie
?onGetMovie(数据){this.setState({movie:data});fetch(''+this.state.movie+'&api_key='+api_key).then(res=>res.json()).then(movieList=>{this.setState({movieList:movieList.results});console.log(movieList);})}状态
不是同步填充的,因此在调用setState
后无法立即访问它。只需在您的查询URL中使用data
变量即可。现在,我可以在使用链接中的数据后进行提取