【发布时间】:2022-01-18 22:11:56
【问题描述】:
在渲染列表时出现错误(无法读取未定义的属性(读取“地图”))。代码附在下面 请帮忙。 已获取并尝试呈现数据的 REACT 代码。
import React, { Component } from 'react'
// import axios from 'axios';
export default class List extends Component {
constructor(props)
{
super(props);
this.state={apiResponse:[]};
}
callAPI()
{
fetch("http://localhost:9000/testAPI")
.then( (res) => res.json())
.then( (data) => {this.setState({apiResponse: data.task});});
}
componentWillMount()
{
this.callAPI();
}
render() {
return (
<div>
<h1>{this.state.apiResponse}</h1>
{
this.state.apiResponse.map((r)=>
<li >r.task</li>
)
}
</div>
)
}
}
从其中获取数据以做出反应的 NODE JS
router.get("/",function(req,res)
{
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("to-do");
// var query = { address: "Park Lane 38" };
dbo.collection("to-do").find({}).toArray(function(err, result) {
if (err) throw err;
console.log(result);
res.json(result)
// res.send((result))
db.close();
});
});
})
【问题讨论】:
-
尝试在渲染方法中记录你的状态并在返回
JSX之前检查你的状态是什么 -
你的nodeJS-Function中console.log的输出是什么?它有一个名为“task”的属性吗?
-
正在显示一个空数组,但是当将 res.json 转换为 res.text() 时,文本会在控制台中再次使用空数组轻松呈现。
-
是的,它具有名为 task 的属性
标签: javascript node.js reactjs express