我一直在为React 18和The Movie Database (TMDB) API的SPA工作.
我目前正在做一台search functionality.
在Searchbox.jsx
个组成部分中,我有:
import { ReactComponent as Magnifier } from '../../icons/magnifier.svg';
import { useEffect, useState } from 'react';
import axios from 'axios';
function Searchbox({ movie }) {
const API_URL = 'https://api.themoviedb.org/3';
const [searchInput, setSearchInput] = useState('');
const [results, setResults] = useState([]);
const timeOutInterval = 1000;
const doMovieSearch = async (e) => {
setSearchInput(e.target.value);
if (searchInput.length >= 3) {
const { data: { results } } = await axios.get(`${API_URL}/search/movie?query=${searchInput}`, {
params: {
api_key: process.env.REACT_APP_API_KEY
}
});
setResults(results);
console.log(results);
}
}
return (
<form className="search_form w-100 mx-auto mt-2 mt-md-0">
<div className="input-group">
<input className="form-control search-box" type="text" value={searchInput} onKeyUp={debounceMovieSearch} placeholder="Search movies..." />
<div className="input-group-append">
<button className="btn" type="button">
<Magnifier />
</button>
</div>
</div>
</form>
);
}
export default Searchbox;
问题
对于我一直无法弄清楚的原因,执行搜索失败并出现以下错误:
无法读取未定义的属性(正在读取‘Target’).
错误在第setSearchInput(e.target.value)
行.
行console.log(results)
不记录任何内容.
问题
- 我做错了什么?
- 解决此问题的最可靠方法是什么?