Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

206
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!