Tengo una lista de backend. Quiero recorrer todos los elementos de esta lista y ocultar el botón si no tiene el estado 6.
respuesta
Volviendo de la respuesta en la lista entrante. No siempre será así. Puede venir en 7 elementos.
policyInstallmentDtoList: Array(1) 0: amount: 291 currency: "TRY" date: "10-02-2022" installmentNumber: 1 status: "3"Estoy tratando de recorrer la lista aquí.
useEffect(() => { if (paymentInfoData?.policyInstallmentDtoList?.forEach((e) => e['status'] !== '6')) { setHiddenControlButtonClass('hidden'); } }html
<div className={hiddenControlButtonClass}> <AS.Button variant="outlined" onClick={handlePayment}> Devam </AS.Button> </div>Puedes usar Array.some
Es un método incorporado en el prototipo de matriz de JS que devuelve un valor boolean que representa si al menos un solo miembro de la matriz responde a su condición.
useEffect(() => { if (!paymentInfoData?.policyInstallmentDtoList?.some(e => e.['status'] === '6') { setHiddenControlButtonClass('hidden'); } } Esto debería funcionar bien y solo establecer el estado una vez,
que es mejor para el rendimiento.
No necesita poner el método forEach en una declaración if .
useEffect(() => { paymentInfoData?.policyInstallmentDtoList?.forEach((e) => { if (e.status !== '6') { setHiddenControlButtonClass('hidden'); } } }