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

313
Visualizações
¿Cómo puedo acceder al valor de useParams dentro del selector redux como ownProps?
  • Estoy usando la biblioteca "volver a seleccionar" en redux para obtener los datos. Quiero obtener datos basados en el gancho useParams() y luego pasarlos dentro de mapStatetoProps como ownProps y luego a la función selectionCollection que es un selector y acepta el valor de useParams() . Aparentemente, no reconoce useParams() como ownProps y eventualmente devuelve undefined. Por cierto, si paso una cadena dentro de selectionCollection('someString) , recibo los datos pero no uso el gancho useParams() . Recibo el useParams value successfully pero no puedo usarlo dentro mapStateToProps , lo que creo que es un problema de alcance. Definí una variable global pero no funcionó.

import { connect } from 'react-redux'; .

import { Outlet, useParams } from 'react-router-dom';

import { selectCollection } from '../../redux/shop/Shop-selectors';

 const CollectionPage = ({ collection }) => { const params = useParams(); const paramsId = params.collectionId; console.log(collection); return ( <div className="collection-page"> <p>THis is the collection page for {paramsId}</p> <Outlet /> </div> ); }; //-- If I log the 'paramsId', I get undefined since it's outside the function const mapStateToProps = (state, ownProps) => ({ // here is where I wanna use the paramsId as ownProps collection: selectCollection(ownProps.paramsId)(state), }); export default connect(mapStateToProps)(CollectionPage);
about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Creo que puede lograr esto de diferentes maneras, pero le sugiero dos formas de usar un parámetro que proviene de useParams Hook y mezclarlo con reaccionar redux

1- Cree otro componente de nivel superior para obtener los parámetros del enrutador y pasarlos al componente CollectionPage, de modo que en mapStateToProps pueda acceder a esos parámetros de esta manera:

 const TopLevelCollectionPage = () => { const params = useParams(); <CollectionPage params={params}></CollectionPage>; }; const CollectionPage = ({ collection }) => { return ( <div className="collection-page"> <p>THis is the collection page</p> <Outlet /> </div> ); }; const mapStateToProps = (state, ownProps) => ({ collection: selectCollection(ownProps.params.collectionId)(state), }); export default connect(mapStateToProps)(CollectionPage);

2- usar ganchos de reacción redux para obtener el estado dentro de su componente

 const CollectionPage = () => { const params = useParams(); const collection = useSelector((state) => selectCollection(params.collectionId)(state) ); //or //const collection = useSelector(selectCollection(params.collectionId)); };
about 4 years ago · Santiago Trujillo 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