javascript - 从上一页键入脚本类型
问题描述
我不确定在这里指定哪种类型。
setHowitters 中的“HowitterObject”是数据,“...prev”是从 howitterObject 连续添加的数据。
interface IhowitterMessage {
message: string;
createAt: number;
id: string;
}
const Home = () => {
const [howitters, setHowitters] = useState<IhowitterMessage[]>([]);
const getHowitters = async () => {
const dbHowitter = await dbService.collection("howitter").get();
dbHowitter.forEach((document) => {
const howitterObject = {
...document.data(),
id: document.id,
};
setHowitters((prev: ???) => [howitterObject, ...prev]); //What should I put in the "prev" type?
});
};
useEffect(() => {
getHowitters();
}, []);
return(
<div>
{howitters.map((howitter: IhowitterMessage) => (
<div key={howitter.id}>
<h4>{howitter.message}</h4>
</div>
))}
</div>
);
};
如果你console.log(howitters),如下。
(3) [{...}, {...}, {...}]
0: {message: "no", createAt: 1631367025550, id: "q2d9TTgh36mgFZwMQ5EA"}
1: {createAt: 1631365463319, message: "Good", id: "nCABFp1v3dP73gIbckpp"}
2: {message: "hey", createAt: 1631367021665, id: "dmNBa6C8NwhDQDYDOP36"}
解决方案
它与您所在州的类型相似
因为prev
是你以前的状态,howitters
所以你也可以放在IhowitterMessage[]
那里:
setHowitters((prev: IhowitterMessage[]) =>
推荐阅读
- python - Python,附加到列表时出现类错误
- python - GTK 加速器重定向
- angular - 如何将选择的文本从外部应用程序拖放到 Angular 12 应用程序中?
- firebase - 点击书籍时如何显示书籍详情
- python - qiskit install error 命令出错,退出状态为 1:
- python - 在谷歌应用程序上应用过滤器
- python - Python:用“if [variable] < 0”过滤掉负值
- java - 如果 Firebase 实时数据库中包含列表,我如何检索对象?
- python - 如何根据以下逻辑对列表进行排序?
- scala - 使用 Scala 在不同数据帧的列之间进行计算,其中包含类似 for 循环的内容