¿Cómo puedo obtener una matriz del primer ID del objeto?
aquí está el contenido de mi matriz
0: {id: 1, user_id: 1, user2_id: 2, creado_at: "2021-03-22T16:37:10.000000Z",…}
1: {id: 7, user_id: 1, user2_id: 3, creado_at: "2021-03-24T16:24:47.000000Z",…}
2: {id: 8, user_id: 1, user2_id: 1, creado_at: "2021-03-24T18:19:21.000000Z",…
<script>
export default
{
data(){
return{
convs_id: [],
convs: [],
}
},
created(){
this.fetchConversation();
this.convs_id = this.convs[0].id;
console.log(this.convs_id);
},
methods:
{
fetchConversation()
{
axios.get('getConvs').then(response=>{
this.convs = response.data;
});
}
}
}
------------------------------------
this.convs se completa cuando se resuelve la llamada para obtener los datos. Entonces, para poder usarlo debes esperar a que se resuelva esa promesa.
Para poder esperar una promesa, debes devolverla. tan fetochConversation() necesita devolver axios.get() (que es la promesa que estarás esperando):
methods:{
fetchConversation() {
return axios.get('getConvs').then(response => {
this.convs = response.data;
});
}
}
Ahora que fetchConversation() devuelve la promesa, tienes dos formas de esperarla: crear async y usar await:
async created() {
await this.fetchConversation();
console.log(this.convs[0]);
}
o llamar al método .then() en la promesa:
created() {
this.fetchConversation().then(() => {
console.log(this.convs[0]);
})
}
0
------------------------------------
En la devolución de llamada exitosa, extraiga el primer elemento:
export default
{
data(){
return {
convs_id: null,
convs: [],
}
},
created(){
this.fetchConversation();
},
methods:
{
fetchConversation()
{
axios.get('getConvs').then(response=>{
this.convs = response.data;
let [firstConvs]=this.convs;// es6 syntax of destructing the array
this.convs_id = firstConvs.id;
});
}
}
}