He leído numerosas respuestas en SO, pero la mayoría no muestra el lado Flask y JS de mi pregunta, por lo que no creo que sea un duplicado. Específicamente, usando React/JS, intento obtener una lista de diccionarios de mi Flask API.
En el lado del servidor, he serializado con éxito mi clase y puedo imprimir la lista de diccionarios como se esperaba. Sin embargo, después de devolverlo usando JSONIFY (como se sugiere en varias preguntas de SO), resulta indefinido en el lado de JS cuando intento acceder a los datos. Al leer en línea, parecía que podía intentar analizar JSON los datos de respuesta, pero esto también muestra indefinido. Esto me lleva a creer que el problema puede estar en el lado del servidor. De todos modos, tampoco estoy seguro de cómo acceder correctamente a esta lista de diccionarios en mi función de búsqueda (habría esperado poder hacer algo en la línea de datos [0] ['nombre']).
Realmente agradecería cualquier orientación que pueda tener, gracias por leer hasta aquí.
eqtls se imprime de la siguiente manera en api.py:
[{'id': 1, 'name': 'Bearbrook Skateboard Park', 'description': 'Superficie plana de asfalto, 5 componentes', 'xcoord': -75, 'ycoord': 45, 'date_added': datetime. fecha y hora (2021, 10, 26, 19, 46, 10)}]
api.py
class Activity(db.Model): id = db.Column(db.Integer, primary_key=True) xcoord = db.Column(db.Integer,nullable=False) ycoord = db.Column(db.Integer, nullable=False) name = db.Column(db.String(200)) description = db.Column(db.String(200)) date_added = db.Column(db.DateTime, default = datetime.utcnow) #create a string def __repr__(self): return f"<id={self.id}, name={self.name},description={self.description},xcoord={self.xcoord},ycoord={self.ycoord},date_added={self.date_added}>" def serialize(self): return { 'id': self.id, 'name': self.name, 'description': self.description, 'xcoord': self.xcoord, 'ycoord': self.ycoord, 'date_added': self.date_added } @app.route('/allActivities', methods=['GET']) def allActivities(): print('hit allActivities routing') allActivities = Activity.query.all() print(str(allActivities)) eqtls=[activity.serialize() for activity in allActivities] print(str(eqtls)) sys.stdout.flush() return jsonify(eqtls)Actualmente en app.js, mi variable de datos se registra como indefinida. aplicación.js
useEffect(()=> { fetch('/allActivities').then(response => { if(response.ok){ console.log(response) return response.json() } }).then(data => setAllActivities(data)) .then(data => { console.log(data); //var jsonData = JSON.parse((data)); //console.log(jsonData[0].name); }) },[])