Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在reactjs中获取api时出错_Javascript_Reactjs - Fatal编程技术网

Javascript 在reactjs中获取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

我使用api键和输入框中的数据获取api,我得到 必须提供查询的错误数组。我可以从中获取数据 输入框。下面是代码

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
变量即可。现在,我可以在使用链接中的数据后进行提取