Это проблема, с которой я постоянно сталкиваюсь при использовании данных из базы данных в React
Невозможно прочитать свойство '...' из null '
До сих пор Я исправил это, обернув элементы в операторах if
, остановив функцию от запуска, если свойство имеет значение null, но когда я делаю это.
if (healthData !== null) {
{
healthData.gender === 'female' ?
BMRset(655.1 + (9.563 * healthData.weight) + (1.850 * healthData.height) - (4.676 * healthData.age))
:
BMRset(88.2 + (13.362 * healthData.weight) + (4.799 * healthData.height) - (5.677 * healthData.age))
}
}
Возвращает ошибку визуализации много раз. Я запутался, где я могу хранить эти расчеты?
const [healthData, healthDataSet] = useState(null)
const [BMI, BMIset] = useState(null)
const [BMR, BMRset] = useState(null)
const [mealOne_box, mealOne_boxSet] = useState(false);
const [mealTwo_box, mealTwo_boxSet] = useState(false);
const [mealThree_box, mealThree_boxSet] = useState(false);
const [mealFour_box, mealFour_boxSet] = useState(false);
useEffect(() => {
const user = Authentication.auth().currentUser;
{
user !== null &&
Authentication.firestore().collection('Health_data')
.doc(user.uid)
.get()
.then(doc => {
healthDataSet(doc.data())
}).catch(function (error) {
console.error("Error reading health", error);
});
}
}, []);
{
healthData.gender === 'female' ?
BMRset(655.1 + (9.563 * healthData.weight) + (1.850 * healthData.height) - (4.676 * healthData.age))
:
BMRset(88.2 + (13.362 * healthData.weight) + (4.799 * healthData.height) - (5.677 * healthData.age))
}