【发布时间】:2019-12-05 19:06:50
【问题描述】:
我是使用 react 的新手,我想从服务器获取数据,所以我尝试了:
class App extends React.Component {
constructor(props) {
super(props)
this.state = { movies: [] }
}
componentDidMount() {
axios.get('https://facebook.github.io/react-native/movies.json')
.then(response => this.setState({ movies: response.data.data }))
}
renderUsers() {
const { movies } = this.state
return movies.map( user => (
<div key={id}>{title} {releaseYear}</div>
))
}
render() {
return <div>{ this.renderUsers() }</div>
}
}
ReactDOM.render(
<App />,
document.getElementById('container')
)
还有我的html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title></title>
</head>
<body>
<div id="container"></div>
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/axios/dist/axios.min.js" crossorigin></script>
<!-- Load our React component. -->
<script src="movies.js" type = "text/babel"></script>
</body>
</html>
问题是,我的页面中什么也没有。有什么想法有什么问题吗?
【问题讨论】:
-
你是用 webpack/babel 打包这个还是你试图运行它?如果是后者,那么我相信您需要包含 babel,否则您的 JSX 将无效。包括:
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>在您的头部。如果不是这样,请使用浏览器的开发者控制台并分享您看到的任何错误消息。 -
似乎响应数据将是
response.data.movies而不是response.data.data。我看到的另一个问题是,在renderUsers中应该是<div key={user.id}>{user.title} {user.releaseYear}</div>。您可能也想使用movie而不是user。