From your complete code, it seems that your constructor is rewriting your state to an empty object (therefore this.state.timeSlots[0].name
is indeed problematic)
I'd rewrite your constructor as :
constructor(props) {
super(props)
this.state = {
isDateTimePickerVisible: false,
mode: 'time',
minuteInterval: 30,
selectedDate: {},
isLoading: true,
syllabus: [{
value: 'Banana',
}],
users: [{
value: 'Banana',
app_id: 'apple',
}],
slots: [{
name: 'test',
time: '123',
user_id: '373737',
}],
}
this.onDayPress = this.onDayPress.bind(this)
this.testStore = this.testStore.bind(this)
}
and testStore as :
testStore() {
const returnArr = []
db.ref(`bookings/${this.user}`).child('22-09-2018').once('value').then((snapshot) => {
const data = snapshot.val()
const timeSlot = Object.values(data)
console.log(`testStore: ${timeSlot[0].name}`)
dt = timeSlot
this.setState({
timeSlots: dt
}, () => {
console.log('after setState', this.state.timeSlots)
})
})
}
manpreet
Best Answer
2 years ago
This is puzzling me why I can't get data from the state, I have tried many things but not had no luck.
I'm getting data from a firebase database and I am trying to store the data into a state, then I can access that data from the state.
Any suggestions will be appreciated.
Thank you