reactjs - TypeError:this.state.userDtl.map 不是函数
问题描述
我是反应编码的新手,正在尝试从 api 响应中获取值。
class AdminDashboard extends Component {
constructor() {
super()
this.state = {
mobile: "",
userDtl: "",
}
this.getDetails = this.getDetails.bind(this)
this.handleChange = this.handleChange.bind(this)
}
handleChange = (event) => {
this.setState({
[event.target.name]: event.target.value
});
}
getDetails() {
console.log("Inside getDetails...")
Service.getUserByMobileNumber(this.state.mobile)
.then(
response => {
console.log(response.data)
this.setState({
userDtl: response.data
})
},
document.getElementById("userDetails").style.visibility = "visible",
)
}
componentDidMount() {
document.getElementById("userDetails").style.visibility = "hidden";
}
render() {
return (
<>
<br /><br />
<div className="userdashboard">
<h3 className="container"><span><u>Admin Dashboard</u><br /></span></h3>
<br />
<div className="container">
<table>
<tr>
<td><b>Mobile Number</b> </td>
<td><input type="text" name="mobile" value={this.state.mobile} onChange={this.handleChange} placeholder="Enter your mobile number" /> </td>
<td><button className="btn btn-success" onClick={this.getDetails}>Get Details</button></td>
</tr>
</table>
<br /><br />
</div>
<div className="container">
<div id="userDetails">
<>
{
this.state.userDtl.map(
userDtl =>
<table>
<tr>
<td><b>Email</b> </td>
<td>{userDtl.email}</td>
</tr>
<tr>
<td><b>Given Name</b> </td>
<td>{userDtl.fName}</td>
</tr>
<tr>
<td><b>Family Name</b> </td>
<td>{userDtl.lName}</td>
</tr>
</table>
)
}
</>
</div>
</div>
</>
)
}
}
export default AdminDashboard
以下是来自api的响应
{fName: "test", lName: "test1", email: "wer", role: null, mobileNumber: "12342"}
下面是我得到的错误
Uncaught (in promise) TypeError: this.state.userDtl.map is not a function
at AdminDashboard.render (AdminDashboard.jsx:108)
at finishClassComponent (react-dom.development.js:17160)
解决方案
推荐阅读
- php - 获取多维 PHP 数组大小的最便宜方法
- ionic-framework - Ionic 3 - 如何打开富文本内容的 url (hrefs)
- java - 从基于 Java 的应用程序的角度来看,安装在服务器上的 oracle 客户端的目的是什么
- android - 在相同 SSID AP 之间切换时 Android 网络延迟
- visual-studio - 关于正确使用 TFS 发布 Web 应用程序的说明
- odoo - 如何在odoo的one2many中隐藏字段
- amazon-web-services - 何时通过 AWS Glue ETL 使用 Amazon Redshift 频谱来查询 Amazon S3 数据
- javascript - 将常规二维矩形坐标转换为梯形
- wpf - 如何将 Tooltip 的 DataTemplate 绑定到其父级?
- php - 如何在 woocommerce wordpress 中使用 xml 填充自定义列