【发布时间】:2021-12-10 07:08:12
【问题描述】:
我正在开发一个项目并使用 appwrite 数据库作为后端。我从我的集合中获取文档数组并在本地存储在 postItems 数组中。 这是获取文档列表的代码。我在 appwrite.js 文件中定义了 getData(),我正在导出它。
getData: async () => {
let promise = appwrite.database.listDocuments('61713e3e5257a');
promise.then(function (response) {
console.log(response.documents) //response.documents is a array
return response.documents
}, function (error) {
console.log(error); // Failure
});
},
然后是我导入的另一个文件dashboard.js,我正在调用它来使用useEffect设置数据。
const [postItems, setPostItems] = useState([])
useEffect(() => {
const getPostData = async () => {
try {
const data = await api.getData()
data.map((doc) => {
setPostItems(prevItems => [...prevItems, {
location: doc.location,
date: doc.date,
text: doc.experience
}])
})
} catch (error) {
console.log(error.message);
}
}
getPostData()
console.log(postItems)
}, [])
我无法检索数据并将控制台错误显示为“无法读取未定义的属性(读取 'map')” 我无法理解出了什么问题,因为 getData() 函数正在返回 response.documents,它是一个数组,我正在使用它来设置 PostItems。如果有人能指出问题所在,那将非常有帮助。
【问题讨论】: