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

113
Visualizações
Cómo cambiar el estado de reacción con el operador de propagación

Necesito ayuda para cambiar el estado de la matriz de objetos al obtener datos.

Este es mi estado de uso.

 const [productData, setProductData] = useState<[{label: string, value: string}]>([{ label: '', value: '', }]);

Y esta es la función donde hago una llamada api y cambiaré mi estado tomando de la matriz de objetos el nombre de los productos, así que data.name. Estoy tratando de mapear todos los nombres para poder mostrarlos en un menú desplegable.

 const getAllProducts = async () => { try { const { data } = await axios.get(`http://localhost:8300/product/all`); data.map((product: any) => setProductData()); } catch(error) { console.log("Error", error); } };

¿Cómo podría hacer esto en React TypeScript? Cambie la etiqueta y el campo de valor con los valores asignados para que pueda mostrarlos en el menú desplegable.

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

type ProductData = { label: string; value: string; }; const [productData, setProductData] = useState<ProductData[]>([ { label: '', value: '', }, ]);
 const updateProductData = (newProductData: ProductData[]): void => { setProductData((currentState) => { const draft = newProductData; // mutate your draft however you'd like... return [...currentState, ...draft ]; }); return; };
 const getAllProducts = async (): ProductData[] => { const newProductData = await // ... updateProductData(newProductData); return; };

Verifique la segunda nota en los documentos de useState

Sin embargo, es posible que useReducer sea más útil.

about 4 years ago · Juan Pablo Isaza Relatório

0

Ya está realizando una llamada API y obteniendo la respuesta aquí.

 const getAllProducts = async () => { try { const { data } = await axios.get(`http://localhost:8300/product/all`); data.map((product: any) => setProductData()); <-- prepare your object here } catch (error) { console.log("Error", error); } };

Una vez que obtenga la respuesta, prepare los objetos que se requieren para su menú desplegable. Algo como abajo.

 const dropdownValues = data.map((product: any) => ({ id: product.id, label: product.name, value: product.id })); setProductData(dropdownValues);

Use ProductData en su etiqueta desplegable.

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