【发布时间】:2017-03-03 19:19:46
【问题描述】:
尝试通过一个简单的 Axios 教程开始习惯于填充动态数据。 Loading and Using External Data in React
我不得不创建一个 JSON Web 服务器,因为使用 localhost 访问 Codepen 违反了 CORS。
App.jsx
var App = React.createClass({
getInitialState: function(){
return{
users: []
};
},
componentDidMount: function(){
var _this = this;
this.serverRequest =
axios
.get("http://localhost:3004/users")
.then(function(results){
console.log(results.data);
_this.setState({
users: results.data.users
});
});
},
componentWillUnmount: function(){
//...
},
render: function(){
return(
<div>
<h3>Returning Users:</h3>
{this.state.users.map(function(user) {
return (
<div>{user.name}</div>
);
})}
</div>
);
}
});
export default App;
我知道数据应该被外推到 Redux 之类的东西中,但这只是处理动态数据的开始。我得到的错误是Uncaught (in promise) TypeError: Cannot read property 'map' of undefined 我在做一些研究时找不到这个错误的很好的解释。那我做错了什么?
我发现如果我将数据预填充到 getInitialState 中,我可以获得回报。那么 Promise 将数据加载到初始状态有什么问题呢?
编辑:
Console.log 图片:
【问题讨论】:
-
这行
console.log(results.data);的结果是什么 -
我得到了预期的数据返回。看起来数据没有被推入
getInitialState中的用户数组中@ -
你能显示
console.log(results.data);的输出吗? -
我为控制台输出添加了一张图片
-
这是
results.data或results.data.users的输出吗??
标签: javascript reactjs axios