Я использую firebase с реагирующими функциональными компонентами, я определяю db
объект в использованииEffect и устанавливаю объект в такое состояние:
const [Db, setDb] = useState();
useEffect(() => {
const db = firebase.database();
setDb(db, checkStatus());
}, []);
const checkStatus = () => {
Db.ref("orders")
.once("value")
.then(snapshot => {
// do something
});
}
Я дал checkStatus()
в качестве обратного вызова для setDb()
, который, как я верю, будет выполнен после того, как setDb()
изменит состояние (обычно вызов checkStatus()
в useEffect()
также выдает такую же ошибку). Теперь при вызове checkStatus()
я получаю следующую ошибку:
TypeError: Cannot read property 'ref' of undefined
Я считаю, что checkStatus()
выполняется перед изменением состояния, что приводит к неопределенности Db
. Я не могу найти способ вызова функции после того, как значение состояния установлено на что-то, и каковы лучшие практики при вызове функций и использовании состояния как такового.