javascript - 我正在努力从这个函数中显示这些变量
问题描述
您好,我是新反应,我正在尝试显示 arrayofData 和 arrayofID 但我不知道该怎么做?
class ListCampaigns extends React.Component {
FindDocuments() {
db.collection("campaigns")
.get()
.then(function(querySnapshot) {
var arrayofID = [];
var arrayofData = [];
querySnapshot.forEach(function(doc) {
arrayofID.push(doc.id);
const campaignName = doc.data();
arrayofData.push(campaignName);
});
return arrayofData, arrayofID;
});
}
render() {
return (
<div>
<ul>{this.FindDocuments}</ul>
</div>
);
}
}
解决方案
您当前正在尝试通过编写在 render 方法中呈现一个函数this.FindDocuments
。您可以改为使用componentDidMount
钩子并调用this.FindDocuments()
并设置您在组件状态中获得的响应数据。
例子
class ListCampaigns extends React.Component {
state = { documents: [] };
componentDidMount() {
this.findDocuments();
}
findDocuments = () => {
db.collection("campaigns")
.get()
.then(querySnapshot => {
var data = [];
querySnapshot.forEach(function(doc) {
data.push({
id: doc.id,
name: doc.data()
});
});
this.setState({ documents: data });
});
};
render() {
return (
<div>
<ul>
{this.state.documents.map(document => (
<li key={document.id}>{document.name}</li>
))}
</ul>
</div>
);
}
}
推荐阅读
- r - 有没有办法在反应/观察中使用嵌套的 reactivePoll 来渲染依赖于 DB 和 UI 变化的图
- java - 如何在使用 Maven 创建 Jar 时使用依赖项在本地运行代码并排除它们
- python - 使用 Py2neo 插入属性值
- docker - 将 Tar 球中的 Docker 映像推送到 OpenShift Docker
- javascript - 如何使用 typescript 测试 koa 中间件
- linux - 使用 shell 脚本从字符串中提取版本号
- python - 使用for循环在python中反转整个字符串
- python - 附加两个熊猫数据框时,布尔值会变成浮点数
- angular - 如何让 for 循环在再次循环之前等待一段时间
- android - 安装 APK 时被 Play Protect 阻止