Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

214
Visualizações
¿Por qué el estado todavía muestra Promise mientras usa redux? y ¿cómo debo acceder a la matriz dentro del resultado?

El estado aquí muestra una promesa cuando registro el resultado en la consola. ¿Cómo puedo acceder a la matriz dentro del resultado de la promesa? Probé Object.key y map pero nada funcionó

 > import React, { useEffect, useState } from 'react'; import { > useDispatch, useSelector } from 'react-redux'; import { fetchStocks } > from '../Redux/stocks/stockreducer'; > > > > export const Home = () => { > > const dispatch = useDispatch(); useEffect(() => > dispatch(fetchStocks),[dispatch]); let result = useSelector((state) => > state.stocks); console.log(result) return ( > > <div> > <h1>test</h1> > </div> ); }

y aquí es donde busco datos de la API usando axios y pensé que al usar entonces puedo acceder a la matriz dentro del objeto Promise pero no puedo

 > import Axios from 'axios'; > > const initialState = []; > > export const LOAD_STOCKS = 'GET_STOCKS'; > > export const loadAllStocks = (payload) => ({ > type: LOAD_STOCKS, > payload, }); > > export const fetchStocks = (dispatch) => { > var options = { > method: 'GET', > url: 'https://coinranking1.p.rapidapi.com/coins', > params: { > referenceCurrencyUuid: 'yhjMzLPhuIDl', > timePeriod: '24h', > tiers: '1', > orderBy: 'marketCap', > orderDirection: 'desc', > limit: '50', > offset: '0', > }, > headers: { > 'x-rapidapi-host': 'coinranking1.p.rapidapi.com', > 'x-rapidapi-key': '03518c50f0mshb2f93a5c3fbb56fp1a5e6ajsn175d3c928506', > }, > }; > let result = Axios.request(options).then((response) => response.data).then((result) => result.data.coins); > dispatch(loadAllStocks(result)) > return result > }; > > > > const Stocksreducer = (state = initialState, action) => { > switch (action.type) { > case LOAD_STOCKS: > return action.payload > default: > return state; > } }; > > export default Stocksreducer;
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Ha declarado fetchStocks como una función síncrona, por lo que está enviando el objeto Return Promise de la solicitud de axios y no el valor resuelto.

Envíe el valor del resultado desde dentro de la cadena Promise:

 export const fetchStocks = (dispatch) => { const options = { ... }; Axios.request(options) .then((response) => response.data) .then((result) => { dispatch(loadAllStocks(result.data.coins)); }) .catch(error => { // handle any rejected Promises or errors }); };

O convierta fetchStocks en una función async y await a que se resuelva la Promesa.

 export const fetchStocks = async (dispatch) => { const options = { ... }; try { const response = await Axios.request(options); const result = response.data; dispatch(loadAllStocks(result.data.coins)); } catch(error) { // handle any rejected Promises or errors } };
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda