У меня есть блок кода, который отлично работает, пока что-то есть в базе данных, но это приводит к тому, что приложение ломает sh при первой загрузке, потому что нет набора результатов в базе данных на fre sh развернуть. Прямо сейчас, если я устанавливаю данные и загружаю этот экран, он получает набор результатов от pouchdb и получает do c, а затем устанавливает значения состояния на основе индексов документа.
Cuerrently при загрузке fre sh, я получаю сообщение об ошибке, что он не может прочитать свойство undefined для newBaselineDocs[0]
Мне нужно изменить это, чтобы, если нет результат из базы данных, то я вместо этого устанавливаю состояние этих значений на ноль по всем направлениям.
Например, если нет результата, то вместо ldl: newBaselineDocs[0].ldl
я бы использовал ldl: 0
, если это имеет смысл. Я знаю, что это будет что-то вроде if / else, но я действительно не знаю, как бы я сделал это с pouchdb result logi c.
setBaselineMax = () => {
this.state.baselineDB.db.find({
selector: {
$and: [
{_id: {"$gte": null}},
{ldl: {$exists:true}},
{hdl: {$exists:true}},
{totalChol: {$exists:true}},
{weight: {$exists:true}},
{water: {$exists:true}},
{sleep: {$exists:true}},
{activity: {$exists:true}},
{heartRate: {$exists:true}},
{netCalories: {$exists:true}},
{bloodPresure: {$exists:true}},
{whiteCount: {$exists:true}},
{redCount: {$exists:true}},
{trig: {$exists:true}},
{glucose: {$exists:true}},
{oxygen: {$exists:true}},
{psa: {$exists:true}},
{alcohol: {$exists:true}},
{createdAt: {$exists: true}}
]
},
fields: ['_id','ldl','hdl','totalChol','weight','water','sleep','activity','heartRate','netCalories','bloodPresure','whiteCount','redCount','trig','glucose','oxygen','psa', 'alcohol'],
sort: [{'_id':'asc'}],
limit: 1
}).then(result => {
console.log('baseline result');
console.log(result);
const newBaselineDocs = result.docs;
console.log('this is basline data from app');
console.log(newBaselineDocs);
this.setState(prevState => ({
baselineRecord: { // object that we want to update
...prevState.baselineRecord, // keep all other key-value pairs
ldl: newBaselineDocs[0].ldl,
hdl: newBaselineDocs[0].hdl,
totalChol: newBaselineDocs[0].totalChol,
weight: newBaselineDocs[0].weight,
water: newBaselineDocs[0].water,
sleep: newBaselineDocs[0].sleep,
activity: newBaselineDocs[0].activity,
heartRate: newBaselineDocs[0].heartRate,
netCalories: newBaselineDocs[0].netCalories,
bloodPresure: newBaselineDocs[0].bloodPresure,
whiteCount: newBaselineDocs[0].whiteCount,
redCount: newBaselineDocs[0].redCount,
trig: newBaselineDocs[0].trig,
glucose: newBaselineDocs[0].glucose,
oxygen: newBaselineDocs[0].oxygen,
psa: newBaselineDocs[0].psa,
alcohol: newBaselineDocs[0].alcohol // update the value of specific key
}
}))