javascript - 我如何在反应中从 Json 对象中读取单个元素?
问题描述
我从我的 react 应用程序的 express 后端收到一个 JSON 对象,但我不知道如何访问它的一个属性。我需要读取用户名字段。
由于我已将 JSON 对象保存为我的反应状态,因此我尝试了this.state.datos.username
(returns undefined
) 和this.state.datos[0].username
(returns a "cannot read property of undefined" 错误)。我已经检查了有关此主题的一些答案,但也许我有点。笨拙,我无法完成这项工作。
这是我从 express 获取的方法,以 JSON 格式发送用户的数据。
app.get("/datosusuario", function(req, res, next) {
res.json([
{
username: username,
name: name,
surname: surname,
telephone: telephone,
mail: mail,
fax: fax
}
]);
});
在浏览器中检查时,它会显示此对象:
[{“用户名”:“未知”,“姓名”:“此人”,“姓”:“不存在”,“电话”:“123123123”,“邮件”:“randommail@gmail.com”,传真":"584758924375892345"}]
另外,这是我constructor
和我的componentDidMount
方法:
constructor(props) {
super(props);
this.state = {
datos: []
};
}
componentDidMount(){
fetch('/datosusuario')
.then(userdata => userdata.json())
.then(data => {
console.log(data);
this.setState({ datos:data })
console.log(this.state.datos);
})
}
console.log(this.state.datos)
并console.log(data)
显示相同:
[{…}]
0: {username: "Unknown", name: "This person", surname: "does not exist", telephone: "123123123", mail: "randomemail@gmail.com", …}
length: 1
__proto__: Array(0)
Chrome 的 React 扩展也显示了同样的情况。
我需要Welcome{username}
在导航栏组件中显示一条消息,如下所示(我正在使用引导程序):
<Navbar bg="primary" variant="dark">
<Navbar.Brand href="/">Tecnolab</Navbar.Brand>
<Nav className="justify-content-end">
<Nav.Item>
<Nav.Link href="/login">No está autenticado</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link href="/login">Login</Nav.Link>
</Nav.Item>
<Nav.Item>
<Nav.Link href="/login">
Welcome {this.state.datos.username}
</Nav.Link>
</Nav.Item>
</Nav>
</Navbar>
解决方案
this.state.datos
是根据控制台输出的对象数组this.state.datos[0].username
,因此您应该将用户名获取为.
推荐阅读
- javascript - 即使密钥有效,Razorpay API 也会出现无效密钥错误
- scala - 因超过 Spark Scala 中的内存限制而被 YARN 杀死的容器
- java - 如何将 Java 中的 Sha-512 哈希转换为其等效的 Node.js
- node.js - 用斜杠快速化 url 正则表达式
- opencv - 用于创建窗口的 OpenCV highgui 指定合成器后端(X11、Wayland、OpenGL)
- reactjs - JSX 元素 <...> 中的两个变量 {...}
- amcharts - 如何根据 amcharts 4 中的 ajax 数据更改烛台的颜色?
- reinforcement-learning - 一步多动作,强化学习
- git - 无法从 git 提交创建补丁 创建补丁时出错:错误:无法读取对象
- javascript - 将数字转换为字母