【发布时间】:2020-06-12 10:15:15
【问题描述】:
我正在尝试使用 React、Axios 和 movieDB API 制作电影搜索功能。我现在尝试实现的功能是在搜索栏中输入电影,然后单击提交按钮会将电影标题作为 H1 元素返回。
我的 onClick 功能不起作用:<button onClick={(e)=>clickHandler()}>submit</button>
componentDidMount() 仅在页面刷新时起作用,并且由于提交按钮损坏,您无法搜索任何内容。
我不确定如何实现这一点,但我也不介意是否可以通过按 Enter 键而不是使用按钮来搜索它,以更容易者为准。
这是我目前的代码。
App.js
import React from "react"
import Movielist from './components/Movielist'
function App() {
return (
<div>
<input type="search" id="search" />
<button onClick={(e)=>clickHandler()}>submit</button>
<h1 id="title">title</h1>
<Movielist />
</div>
)
}
export default App
Movielist.js
import React from 'react';
import axios from 'axios';
export default class Movielist extends React.Component {
state = {
title: ""
}
componentDidMount() {
const API_KEY = '***********************';
const query = document.getElementById('search').value;
axios.get(`https://api.themoviedb.org/3/search/movie?api_key=${API_KEY}&query=${query}`)
.then(res => {
const title = res.data['results'][0]['title'];
this.setState({ title });
})
}
render() {
return (
<h1>{this.state.title}</h1>
)
}
}
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
ReactDOM.render(
<App />,
document.getElementById('root')
);
【问题讨论】:
标签: javascript reactjs api