我不明白为什么我会收到这个错误。我怎么能解决它,最重要的是为什么我得到它?
我从API收到了正确的回复,但我也在拨打电话后立即收到错误。
class App extends Component {
constructor(props) {
super(props);
this.state = {
movies: []
};
}
videoSearch(term) {
axios.get(`https://api.themoviedb.org/3/search/movie?api_key=${APIkey}&query=${term}&page=1`)
.then(response => this.setState({movies: response.data.results}))
.catch(err => console.log(err))
};
render() {
return (
<div className="App">
<SearchBar onSearchTermChange={this.videoSearch} />
</div>
);
}
}
export default App;
import React, {Component} from 'react';
class SearchBar extends Component {
constructor(props) {
super(props);
this.state = { term: "" };
}
render() {
return (
<div className="search-bar">
<input
value={this.state.term}
onChange={event => this.onInputChange(event.target.value)}
/>
</div>
);
}
onInputChange(term) {
this.setState({ term });
this.props.onSearchTermChange(term);
}
}
export default SearchBar;
答案 0 :(得分:2)
疯狂猜测基于这些类型问题的大量数量:)
尝试:
constructor(props) {
super(props);
this.state = {
movies: []
};
this.videoSearch = this.videoSearch.bind(this);
}
告诉我它是否有效。如果没有,我会删除答案。
我怀疑this
是针对与App
组件不同的对象调用的。
答案 1 :(得分:0)
在构造函数中添加bind有效,但有时会影响可读性。
this.videoSearch = this.videoSearch.bind(this);
相反,您也可以使videoSearch
成为箭头功能。
videoSearch = term => {
axios.get(`https://api.themoviedb.org/3/search/movie?api_key=${APIkey}&query=${term}&page=1`)
.then(response => this.setState({movies: response.data.results}))
.catch(err => console.log(err))
};