Isu Nextjs - Anak harta tidak wujud pada jenis {}
P粉658954914
2023-08-16 20:20:47
<p>Saya menggunakan React dan Next.js, di bawah ialah kod saya, ia menimbulkan ralat pada atribut <code>children</code>, mesej ralat ialah <strong>Property children dalam jenis {} tidak wujud</strong></p>
<pre class="brush:php;toolbar:false;">import { NextPage } daripada "next";
import { createContext, useContext, useReducer, Dispatch } daripada "react";
import { GlobalStatesType } daripada "../types";
import reducer, { ActionType, initialState } daripada "../reducers";
eksport const StateContext = createContext<{
menyatakan: GlobalStatesType;
penghantaran: Dispatch<ActionType>;
}>({
menyatakan: initialState,
penghantaran: () =>
});
export const StateProvider: NextPage = ({ children }) =>
const [states, dispatch] = useReducer(reducer, initialState);
kembali (
<StateContext.Nilai pembekal={{ states, dispatch }}>
{ kanak-kanak }
</StateContext.Provider>
);
};
eksport const useStatesValue = () =>
<p>Bagaimanakah saya boleh menulis kod dalam konteks fungsi seterusnya yang saya import? </p>
Nampaknya anda menggunakan TypeScript dan Next.js untuk mencipta komponen penyedia konteks. Ralat "Kanak-kanak' Harta tidak wujud pada jenis '{}'" yang anda hadapi berkemungkinan besar kerana TypeScript tidak mengenali sifat kanak-kanak dalam komponen fungsi.
Untuk menyelesaikan masalah ini, anda boleh mentakrifkan secara eksplisit jenis atribut kanak-kanak dalam komponen StateProvider. Begini caranya:
Dengan mentakrifkan jenis StateProviderProps dan menggunakannya untuk menentukan jenis harta kanak-kanak dalam komponen StateProvider, anda tidak lagi akan menghadapi ralat TypeScript yang berkaitan dengan harta kanak-kanak.