reactjs - 使用 Next.js 搜索表单
问题描述
我开始使用 Next.js,但我被阻止了。我正在使用 MovieDB API。我希望在搜索后在另一个页面中显示找到的结果(MovieDB doc:search multi)。不幸的是,我被阻止了,因为我不知道如何传输数据并将其显示在特定页面上。
我已经设法使用以下方法显示其他元素的详细信息:getInitialProps 和 getInitialPath 但我不知道如何。一点线索?^^
表格页面:
import Link from 'next/link';
function SearchForm() {
const [movies, setMovies] = useState([]); //Displays the table of search results
const [search, setSearch] = useState(''); //Value in the research input
const [query, setQuery] = useState('spiderman') //Value to look for when submit
useEffect(() => {
searchMovie()
}, [query])
const searchMovie = async () =>{
const request = await fetch (`https://api.themoviedb.org/3/search/multi?api_key=${myKey}&language=fr&query=${query}`)
const response = await request.json();
setMovies(response.results);
console.log(response.results);
}
const handleChange = (event) =>{
setSearch(event.target.value);
console.log(search);
}
const submitSearchMovie = (event) =>{
event.preventDefault();
setQuery(search)
}
return (
<React.Fragment>
<form className="form" onSubmit={submitSearchMovie}>
<input
className="searchInput"
type="text"
placeholder="Rechercher un film, une série, un artiste"
value={search}
onChange={handleChange}
/>
<Link href='/search/[id]' as={`/search/${search}`}>
<a><input type="submit" value="test link" /></a>
</Link>
</form>
{movies.map((movie,index) =>(
<h4 key={index}>Titre: {movie.title ? movie.title : movie.name}</h4>
))}
</React.Fragment>
);
}
export default SearchForm;```
解决方案
推荐阅读
- mysql - 错误 1054 (42S22): MySQL 中“字段列表”中的未知列“员工”
- ios - UIImageView的cornerRadius不起作用
- ios - 如何在 swift 4 和 XCODE 9 中为此 KUNDLI 图像设置多个标签
- yaml - YamlDotNet:如何自定义反序列化器以处理具有不同类型值的相同键
- python - 按下特殊字符后 Visual Studio 智能感知提交 - python
- java - 如何将config.rpc.port的值从build.gradle读取到corda中的java类
- android - 如何通过 Playstore APK 安装调试 ApK
- bash - for循环中的Bash命令不执行
- javascript - 如何从这个对象中获取价值?
- ruby - 用于检查最后一个字符的正则表达式