我正在尝试从 firebase 获取我的项目并将其放入带有钩子(Hook)的数组中。
一个项目如下:{name:“电影应用程序”,日期:t,描述:“这是我的第一个应用程序,一个完整的电影应用程序”}
//hooks
const [projects, setProject] = useState([]);
//function for get projects
async function getprojects(){
let finalProjects = [];
await db.collection('projects').get().then((querySnapshot) => {
querySnapshot.docs.map(res => {
const a = res.data();
finalProjects.push(a)
})
//error here
setProjects(finalProjects)
})
}
useEffect(() => {
getprojects();
}, []);
但是 finalProjects.push(res.data())
不起作用,因为“‘DocumentData’类型的参数不可分配给‘never’类型的参数。”但是我应该如何使用 setProjects
projects
中
最佳答案
Typescript 不知道您在状态中存储什么,因此它不会让您将数据放入其中。您可以将其设为any
数组(不太理想)或DocumentData
数组。
const [projects, setProject] = useState<any[]>([]);
const [projects, setProject] = useState<DocumentData[]>([]);
确保 DocumentData
在范围内,从 firestore
导入。
关于javascript - react typescript : usestate type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63539135/