Skip to main content

Error Komponens

Az Error komponens egy testreszabható hibaüzenet megjelenítésére szolgál, az Ant Design Alert komponensét felhasználva.

Működés

  • A komponens egy felugró hibaüzenetet jelenít meg az oldal tetején, amennyiben az open prop értéke true.
  • Tartalmaz egy záró ikont, amire kattintva az üzenet eltűnik, és meghívódik a closeFunction propban megadott callback.
  • A hibaüzenet tartalmaz egy címet (title) és egy részletes üzenetet (message).
  • Ha az open prop false, a komponens nem renderel semmit.

Propok

NévTípusKötelezőLeírás
titlestringNemA hibaüzenet címe.
messagestringNemA hiba részletes leírása.
openbooleanNemMeghatározza, hogy a hibaüzenet látható legyen-e (true) vagy rejtett (false).
closeFunctionFunctionNemEgy függvény, amely meghívódik, amikor a felhasználó bezárja a hibaüzenetet.

ErrorType objektum struktúrája (gyakran a state-ben használatos)

A komponens belsőleg vagy a state kezeléséhez használhatja az ErrorType interface-t, amely a title és message stringeket definiálja.

KulcsTípusLeírás
titlestringA hiba címe.
messagestringA hiba üzenete.

Használati példa

Az alábbi példa bemutatja, hogyan lehet az Error komponenst használni egy oldalon, ahol egy API hívás során keletkező hibát szeretnénk megjeleníteni.

import { useState } from 'react';
import Error from '@/components/Error/Error.component';
import { ErrorType } from '@/components/Error/ErrorType'; // Feltételezve, hogy exportálva van

export default function SomePage() {
const [error, setError] = useState<ErrorType | null>(null);

const fetchData = async () => {
try {
// ... API hívás ...
throw new Error('Valami hiba történt az adatok betöltésekor!');
} catch (err: any) {
setError({
title: 'Adatbetöltési hiba',
message: err.message || 'Ismeretlen hiba.'
});
}
};

return (
<div>
<h1>Adatok</h1>
<button onClick={fetchData}>Adatok betöltése</button>

{/* A hibaüzenet megjelenítése */}
<Error
title={error?.title}
message={error?.message}
open={!!error} // Akkor nyílik meg, ha van `error` objektum
closeFunction={() => setError(null)} // Bezáráskor nullázza az `error` state-et
/>

{/* ... az oldal többi tartalma ... */}
</div>
);
}