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

129
Visualizações
Usando ngrx para obtener el estado actual de la tienda una vez

Hola, me preguntaba si alguien sabe cómo obtener el estado actual de una tienda una vez sin tener que suscribirse. Actualmente estoy usando ngrx para suscribirme a la tienda y acceder a su estado para establecer el atributo de un componente, pero como estoy suscrito, este atributo se actualiza constantemente. Así que estoy buscando una manera de obtener este atributo solo una vez para poder mostrar los datos sin que se actualicen constantemente.

Por si acaso, esto sucede dentro del constructor de mi componente.

He estado intentando algo como esto:

_store.select('storeData.correlationData');

Al suscribirme accedería así:

 _store.subscribe( (state) => { this.correlationData = state.storeData.correlationData; } );

EDITAR

Estado de aplicación:

 export interface ApplicationState { uiState: UiState; storeData: StoreData; }
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puede crear la función getState() , colocarla en un módulo compartido e importarla donde sea necesario. La clave es hacerlo sincrónico usando el operador take(1) :

 export function getState(store: any, selector: string) { let _state: any; store.take(1).subscribe(o => _state = o); return _state; }

Aquí hay una versión más avanzada que estoy usando:

 export function getState(store: any, selector?: any) { let _state: any; let state$: any; if (typeof selector === 'string' && /\./g.test(selector)) { state$ = store.pluck(...selector.split('.')); } else if (typeof selector === 'string') { state$ = store.map(state => state[selector]); } else if (typeof selector === 'function') { state$ = store.map(state => selector(state)); } else { state$ = store; } state$.take(1) .subscribe(o => _state = o); return _state; }

Con esto, puede obtener el estado de diferentes maneras:

 getState(this.store) // all data in Store getState(this.store, 'users') getState(this.store, state => state.users) getState(this.store, 'users.address.street') // Cool!

¡Usar con precaución!

Como señaló @Maximes en los comentarios, debe intentar usar Observables directamente en su código y usar este método para probar .

over 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