Não tem como evitar a renderição, pois isso é o que vai atualizar a lista com os novos elementos, portanto, não acredito que seja "desnecessário." Se tiver pesado demais as renderizações devido a muitos elementos no carrinho, o que você pode fazer é usar useMemo
ou useCallback
. Nesse caso acredito que o useMemo
se encaxaria melhor. O useMemo
vai armazenar o resultado de uma função em cache, assim a lista só vai ser renderizada quando a lista de items mudar (clicar no botão de adicionar novos elementos no carrinho). Não sei se você tá renderizando a Lista utilizando map
, é o useMemo
mesmo o ideal. Vi que você já usa o memo
, mas vale lembrar que existem diferenças chaves entre memo
e useMemo
.
Dito tudo isso, não tem como evitar as renderizações quando clica no botão, pois a lista precisa ser atualizada com os novos valores, mas da pra skipar renderizações adjacentes provocadas por outras coisas que não seja o "botão de adicionar novos produtos" com useMemo