【发布时间】:2021-05-28 09:51:12
【问题描述】:
我正在使用 React useReducer 并尝试显示从 firebase 获取的信息。
async function reducer(listState, action) {
switch (action.type) {
case "load":
let stateCopy2 = [...listState];
let result = await firebase.firestore().collection("contractors").doc(action.idList[0].id).get()
console.log("non promise/ console log 1",result.data())
return [...stateCopy2, result.data()]
default:
throw new Error();
}
}
function Thing(props) {
return (
<div >
{listState.map((data, index) => (
<div>
{data.Bio}
</div>
))}
<button onClick={()=>console.log("promise/ console log 2", listState)}>check</button>
</div>
)
}
export default Thing;
当做console.log(listState); 在 console.log 1 中,信息显示了它应该显示的内容。它应该是什么:
{BIo:"hello"}
console.log 2 显示的信息是:
Promise {<fulfilled>: Array(2)}
那里显示的原始信息。
在转换之后,因为 listState 是它不能被映射的承诺。
我如何将 promise 变成数组或者不让它显示为这样?
【问题讨论】:
标签: reactjs firebase async-await use-reducer