如何在HTML页面上使用reactjs显示此json数据
我对网页设计非常陌生(实际上没有任何先验知识),目前正在尝试创建一个网站,该网站使用Nodejs从我的MySQL数据库中提取数据,并使用Reactjs将其显示在我的HTML页面上。任何帮助都将不胜感激 我之前从中复制了代码,但当我使用本地主机服务器的URL时,其中包含JSON数据,它只显示错误“TypeError:this.state.data.map不是函数” 这是我的app.js如何在HTML页面上使用reactjs显示此json数据,html,node.js,json,reactjs,Html,Node.js,Json,Reactjs,我对网页设计非常陌生(实际上没有任何先验知识),目前正在尝试创建一个网站,该网站使用Nodejs从我的MySQL数据库中提取数据,并使用Reactjs将其显示在我的HTML页面上。任何帮助都将不胜感激 我之前从中复制了代码,但当我使用本地主机服务器的URL时,其中包含JSON数据,它只显示错误“TypeError:this.state.data.map不是函数” 这是我的app.js class App extends React.Component { constructor(){
class App extends React.Component {
constructor(){
super()
this.state = {
data: []
}
}
componentDidMount() {
$.ajax({
url: "http://localhost:4000/stockin",
type: "GET",
dataType: 'json',
ContentType: 'application/json',
success: function(data) {
this.setState({data: data});
}.bind(this),
error: function(jqXHR) {
console.log(jqXHR);
}.bind(this)
})
}
render() {
return (
<table>
<tbody>{this.state.data.map(function(item, key) {
return (
<tr key = {key}>
<td>{item.No}</td>
<td>{item.Stocktype}</td>
<td>{item.Binid}</td>
<td>{item.Stockid}</td>
</tr>
)
})}</tbody>
</table>
)
}
}
ReactDOM.render(<App/>, document.getElementById('app'))
我希望最终能够在我的HTML网站上以表格形式显示数据。可能是问题在于最初数据是空的,所以您必须检查
数据的长度
{this.state.data.length == 0 && <div>No data found</div>}
{this.state.data.length > 0 &&
<table>
<tbody>{this.state.data.map(function(item, key) {
return (
<tr key = {key}>
<td>{item.No}</td>
<td>{item.Stocktype}</td>
<td>{item.Binid}</td>
<td>{item.Stockid}</td>
</tr>
)
})}</tbody>
</table>
}
{this.state.data.length==0&&No data found}
{this.state.data.length>0&&
{this.state.data.map(函数(项,键){
返回(
{item.No}
{item.Stocktype}
{item.Binid}
{item.Stockid}
)
})}
}
您需要在数据.stockin
上调用.map
return (
<table>
<tbody>{this.state.data.stockin.map(function(item, key) {
return (
<tr key = {key}>
<td>{item.No}</td>
<td>{item.Stocktype}</td>
<td>{item.Binid}</td>
<td>{item.Stockid}</td>
</tr>
)
})}</tbody>
</table>
这样,当检查this.state.data.stockin.map
时,render
方法中可能出现的错误就消失了,因为调用时this.state.data
可能为空 尝试在代码中进行如下更改
success: function(data) {
this.setState({data: data.stockin});
}.bind(this),
然后它将始终正常工作
希望这有帮助。您的响应数据不是直接的数组。您可能必须准确地执行this.setState({data:data.stockin})
,而且也不建议将jquery与react一起使用,您可以尝试对axios@MaazSyedAdeeb非常感谢你这么说,我做了你说的,现在它的工作完美!非常感谢。
this.setState({data: data.stockin});
success: function(data) {
this.setState({data: data.stockin});
}.bind(this),