【发布时间】:2020-06-17 10:41:22
【问题描述】:
我的项目正在使用 React、Axios 和 movieDB 的 API。我正在尝试这样做,以便当我输入电影标题并按 Enter 和/或单击提交时,API 将返回搜索的电影标题作为 h1 元素。
目前,只要我刷新浏览器,代码就会工作,它正常运行的唯一方法是,如果我进入代码并将${query} 替换为我想要搜索的内容,即joker。我尝试将 onclick 添加到按钮:<button onclick="componentDidMount()">submit</button>。然而,这并没有做任何事情。
App.js
import React from "react"
import Movielist from './components/Movielist'
function App() {
return (
<div>
<input type="search" />
<button onclick="componentDidMount()">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');
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