reactjs - Dublă destructurare când obiectul principal poate fi nedefinit
În primul rând, întrebarea mea nu este o reluare a dublei destructurări din ES6
Uită-te la următorul cod - Apollo Client GraphQL
import { gql, useQuery, useMutation } from '@apollo/client';
...
const { loading, error, data } = useQuery(TREATMENTS);
Ar fi mai frumos să o scrii în felul acesta:
const { loading, error, data : {treatments} } = useQuery(TREATMENTS);
Totuși, din păcate am întâmpinat următoarea eroare:
TypeError: Cannot read property 'treatments' of undefined
TreadDetails
C:/Users/albertly/Downloads/git/individual-claims/src/TreatDetails.tsx:35
32 | `;
33 |
34 | function TreadDetails(): React.ReactElement {
> 35 | const { loading, error, data : {treatments} } = useQuery(TREATMENTS);
36 | // const [treatments, setTreatments] = useState<Treatment[]>([]);
37 | const { state: stateApp, dispatch: dispatchApp } = useContext(AppContext);
Înțeleg foarte bine de ce se întâmplă.
Întrebarea mea este: Există vreun truc sintactic pentru a face să funcționeze?
Modificat: Mi s-a adus la cunoștință că există o întrebare destul de similară Destructurarea cu obiecte imbricate și valori implicite
Răspuns #1
Furnizați o valoare inițială pentru data din care să se efectueze destructurarea.
const { loading, error, data: { treatments } = {} } = useQuery(TREATMENTS);
