简体   繁体   中英

firebase snapshot iteration only pushes one object to react state

I need to push to an array state every firebase object but when I do that, react only pushes one element, the console log is shown more than one time

const [events, setEvents] = useState([])
const dummy = snapshot.val();
var feed = {}
console.log(dummy)
Object.keys(dummy).map(function(keyName, keyIndex) {
  setEvents(array => [...events,  {name:dummy[keyName]['name'], email: `${dummy[keyName]['email']}` ,date:dummy[keyName]['Date']['startTime'] , extra:{ text:'Click for email', icon:"" }}]);
})

I had to create the loop like this

                Array.of(snapshot.val()).forEach((item) => {
                    for(var i in item){
                      var feed =  {name:item[i]['name'], email: `${item[i]['email']}` ,date:item[i]['Date']['startTime'] , extra:{ text:'Click for email', icon: }}
                      setArray(prev => [...prev, feed])

                    }
                } )

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM