Estoy tratando de obtener datos de MongoDb, pero setState no actualiza bookInstances
¿Cómo puedo usar setState para actualizar bookInstances? y cada matriz es básicamente como {"id": ...}
export default class BookInstances extends Component { constructor(props) { super(props) this.BookInstance = this.BookInstance.bind(this); this.BookInstances = this.BookInstances.bind(this); this.state = { bookInstances: [] } } componentDidUpdate() { axios.get('http://localhost:3001/catalog/bookinstances') .then(res => { this.setState({ bookInstances: res.data }); }) } BookInstance(props) { return <li>{props.bookInstance}</li> } BookInstances() { const bookInstances = this.state.bookInstances; if (bookInstances) { return bookInstances.map(bookInstance => { return <this.BookInstance key={bookInstance} bookInstance={bookInstance.id} /> }) } } render() { return ( <div> <h1>Book Instance List</h1> <ul><this.BookInstances /></ul> </div> ) }}
Agradezco alguna ayuda?
No estoy seguro de por qué usaría un componente de clase hoy en día. No obstante, está configurando el estado en el método de ciclo de vida incorrecto.
Deberá buscar dentro de componentDidMount()
componentDidMount() { axios.get('http://localhost:3001/catalog/bookinstances') .then(res => { this.setState({ bookInstances: res.data }); }) }