javascript - javascript 对象不提供带有属性名称的值
问题描述
我正在做 react.js 中的一个项目。
我有一个 json 数组,其中包含玩家列表及其详细信息。我在 app.js 组件中使用 json 数组。但不是整个数组。我只想使用数组中的一个对象。这是我正在使用的 json 文件:
`{
"user":[
{"name":"Mahendra Singh","city":"Ranchi","age":"35","url":"http://maggiesadler.com/wp-content/uploads/2015/10/11189261_759116200870985_1595157767_n.jpg"},
{"name":"Virat Kohli","city":"Delhi","age":"28","url":"http://maggiesadler.com/wp-content/uploads/2015/10/10004088_1491055334449687_1187165020_n.jpg"},
{"name":"Suresh Raina","city":"Punjab","age":"26","url":"http://maggiesadler.com/wp-content/uploads/2015/10/10817863_856543214397968_517239188_n.jpg"},
{"name":"Chahel","city":"Noida","age":"25","url":"http://maggiesadler.com/wp-content/uploads/2015/10/10919749_326992714172441_299394464_n.jpg"},
{"name":"Krishna Kumar","city":"Noida","age":"24","url":"http://maggiesadler.com/wp-content/uploads/2015/10/10617007_939025979457209_6938406_n.jpg"},
{"name":"Gautam Gambhir","city":"Mumbai","age":"26","url":"http://maggiesadler.com/wp-content/uploads/2015/10/1168617_1435408473368301_409182770_n.jpg"},
{"name":"Sachin Tendulkar","city":"Mumbai","age":"48","url":"http://maggiesadler.com/wp-content/uploads/2015/10/11189836_754178218029431_2102772742_n.jpg"},
{"name":"Sauravh Ganguly","city":"Bengal","age":"50","url":"http://maggiesadler.com/wp-content/uploads/2015/10/10843869_1658219887738208_2033326788_n.jpg"}
]
}`
这是我要使用该数据的 app.js
import React, { Component } from 'react';
import './App.css';
var userjson = require('./user.json');
class App extends Component {
constructor(){
super();
this.state = { user:[],
}
}
componentDidMount(){
this.setState({ user : userjson.user})
}
render() {
console.log(name);
var user = this.state.user; //user is a list of user from the state
var currentUser = user[0];
console.log(currentUser);
console.log(currentUser['name']); //error
console.log(currentUser['age']); //error
console.log(currentUser['city']);// error
var player = {'name':'Sachin','Age':'48','City':'Mumbai'};
console.log(player);
console.log(player['name']); //while this will work
console.log(player['City']);
console.log(player['Age']);
for(var index = 0 ;index < user.length ;index++){
if(index > 0){ break; }
var name = user[index].name;
var city = user[index].city;
var age = user[index].age;
var url = user[index].url;
}
return (
<div className="main-container">
<div className="user">
<div className="user-pic">
<img src = {url} alt="image not found"/>
</div>
<div className="user-box">
<div className="user-name">
{name}
</div>
<div className="user-city">
{age}
</div>
<div className="user-age">
{city}
</div>
</div>
</div>
</div>
);
}
}
export default App;
var player 类似于 currentUser,并使用其属性名称提供值,但 currentUser 不提供其属性名称的值?
解决方案
ComponentDidMount 在第一次渲染 Component 后运行。您需要在构造函数中移动集合数据或在渲染中有条件地检查它。你也可以使用componentWillMount
var userjson = require('./user.json');
class App extends Component {
constructor(){
super();
this.state = { user: userjson.user,
}
}
componentDidMount(){
}
推荐阅读
- debugging - SPARC 单步模式
- amazon-web-services - (Kops) Kubernetes 服务映射到 AWS Route53 中的 DNS 名称?
- gradle - 递归地在文件夹中 Gradle JAR 文件
- c# - Unity中脚本之间的最佳通信方式是什么
- javascript - 将数字与卡号进行比较
- regex - Apache 元字符
- wordpress - 分别显示每个类别
- javascript - 在不使用属性名称的情况下访问大型嵌套数组中的 JSON 属性值
- python - 问题抓取亚马逊,元素无法滚动到视图中
- c# - SetCurrentConsoleFontEx 不适用于长字体名称