TransWikia.com

Como filtrar o que fará meu componente renderizar novamente utilizando react redux

Stack Overflow em Português Asked by Anderson Amorim on August 28, 2020

Tenho vários componentes(progress bars) conectados a um reducer com uma lista de downloads com seus respectivos progressos.

O problema é que ao atualizar o progresso de um item da lista de downloads, todos os componentes conectados são renderizados novamente(o que era de se esperar) e não somente o componente que deveria mostrar o progresso.

Estou utilizando react-hooks, seletores e dipatch do react-redux.

Estado inicial:

const initialState = [];

Método que adiciona um download a lista:

const addDownload = (state = initialState, action) => {
  return [...state, action.download];
};

Método para atualizar o progresso de um download:

const updateProgress = (state = initialState, action) => {
 state.map((download) => {
    if (download.id === action.download.id) {
      download.progress = action.download.progress;
    }
    return true;
  });
  return [...state];

};

Pegando a lista de progresso em meu componente:

const downloads = useSelector((props) =>
 props.downloads
);

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP