Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Dúvda append no useFieldArray [REACT]

Eu estou realizando append de valores em um useFieldArray, porem quando eu aciono o button é feito submit da tela. Após pesquisas vi que utilizar um type='button' resolveria, mas após adicionar no botão o type ele não realiza o append mais...


 ))}
                                    <div className="botao-direita">
                                        <button type="button" className="btn btn-light-primary btn-sm" onClick={() => { contabilField.valoresCusto.push({ valor: 0, nrCentroCusto: '' }) }} >+ Centro de Custo</button>
                                    </div>
    const { fields: valoresContabilFields, append: appendValoresContabil, remove: removeValoresContabil } = useFieldArray({
        name: 'valoresContabil',
        control
    });
    

Alguem já passou por algo parecido ou sabe como resolver essa questão?

1 resposta
solução!

Oi Jennifer, tudo bem?

Pelo que entendi, você adicionou o atributo type='button' no seu botão para evitar o submit da tela, mas agora o append não está funcionando mais.

Uma possível solução para esse problema é utilizar a função append fornecida pelo useFieldArray diretamente no evento de clique do botão, em vez de utilizar o push no array contabilField.valoresCusto. Dessa forma, você pode modificar o seu código para algo como:

<button type="button" className="btn btn-light-primary btn-sm" onClick={() => appendValoresContabil({ valor: 0, nrCentroCusto: '' })}>+ Centro de Custo</button>

Dessa forma, o appendValoresContabil será chamado corretamente e o novo valor será adicionado ao array valoresContabil.

Um abraço e bons estudos.