Estoy tratando de crear un componente de reacción que reciba un objeto inicialmente. este objeto tiene todos los datos necesarios para hacer una llamada a la API y consultar una colección de base de datos. Casi he logrado lo que necesito, pero está desordenado e incluye algunos códigos de tutoriales obsoletos. Esto debería ser fácil, creo que con reaccionar.
QuestionComponent.js
class QuestionComponent extends React.Component{ constructState(props){ var ret = [] return new Promise(resolve => { console.log(props.question.public_token) window.API.user_profile(props.question.public_token).then(user => { ret['question'] = props.question ret['public_token'] = props.question.public_token ret['title'] = props.question.title ret['author'] = user.username console.log(props.question) var z = 0 props.question.tags.forEach(tag => { z++ ret['tags'] = [ret['tags'], <TagComponent key={tag+z} text={tag}></TagComponent>] }); resolve(ret) }) }) } constructor(props){ super(props); console.log(props) this.state = {question:props.question} this.constructState(props).then(res => { console.log(res) this.state = res }) //var isQuestion //if(props.isQuestion|| props.isQuestion != undefined){ // this.state = {id: props.question.id, title: props.question.title, tags:props.question.tags, author:props.question.author} //}else{ // console.log('else') // this.state = {id: props.question.id, title: 'test', tags:['test','test'], author:'test author'} //} } componentDidMount(){ console.log('mount') this.constructState(this.state.question).then(res => { console.log(res) this.state = res }) } render(){ return (...) } }; export default QuestionComponent; aquí es donde estoy ahora. puede ver console.log(res) en constructor.construcState() cuando ejecuto el código, parece devolver exactamente lo que quiero, pero creo que se evalúa después en la consola o no puedo establecer el estado correctamente. Todavía soy algo nuevo en React. ¿alguien podría mostrarme lo que estoy haciendo mal?