我正在创建一个钩子来从数据库中获取所有属性.该函数是异步的,当我在另一个函数中调用钩子时,它是[].我知道从数据库获取的函数是异步的,我知道它必须等待服务器的响应.我不完全理解它,我如何让钩子返回我需要的数据?
我在另一个函数中使用了相同的逻辑来获取属性,它起作用了,然而,我想把它放在一个钩子中,因为我将在程序的许多其他部分使用它.请不要在回答时表现得卑鄙和居高临下,我正在学习这就是我来这里询问的原因.
const getAllProperties = async () => {
const propertyRef = ref(database, "properties");
const getProperties = async () => (await get(propertyRef)).val();
const [allProperties, setAllProperties] = useState([]);
getProperties().then((properties) => {
setAllProperties(properties ? Object.values(properties) : []);
});
console.log(allProperties);
return allProperties;
};