Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

324
Vistas
Cómo pasar un argumento adicional a useSelector

Estoy llamando a useSelector con éxito desde un componente, que deriva un nombre de producto de una identificación.

 const productId = 25; // whatever const productName = useSelector( (state) => state.dashboard.dashboards.filter( ({ Id }) => Id === productId )[0].Name );

Sin embargo, mi selector depende de productId , que estoy almacenando en una variable en el mismo archivo. Me gustaría almacenar esta llamada useSelector en un archivo externo para poder compartirla. Intenté lo siguiente, pero la id no está undefined :

selectores.js

 export const getProductNameById = (store, id) => { return store.dashboard.dashboards.filter(({ Id }) => Id === id)[0] .Name; }

algún_archivo.js

 import { useSelector } from "react-redux"; import { getProductNameById } from "./selectors"; const productId = 25; const productName = useSelector(getProductNameById, productId);
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

desafortunadamente, la función selector solo acepta el estado de la tienda como argumento. Consideraría utilizar un enfoque curry para abordar el problema:

 export const getProductNameById = id => store => { return store.dashboard.dashboards.filter(({ Id }) => Id === id)[0] .Name; }

algún archivo

 import { useSelector } from "react-redux"; import { getProductNameById } from "./selectors"; const productId = 25; const productName = useSelector(getProductNameById(productId));
over 4 years ago · Santiago Trujillo Denunciar

0

Parece que la manera de hacer esto sería así:

 const productName = useSelector((state) => getProductNameById(state, productId));

Este es el tutorial de cómo redux docs parece manejar esto. aquí

over 4 years ago · Santiago Trujillo Denunciar

0

Esto también debería funcionar:

 const productName = useSelector(getProductNameById(productId));
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda