Isu Nextjs - Anak harta tidak wujud pada jenis {}
P粉658954914
P粉658954914 2023-08-16 20:20:47
0
1
503

Saya menggunakan React dan Next.js, di bawah ialah kod saya, ia menimbulkan ralat pada atribut children, mesej ralat ialah Property children dalam jenis {} tidak wujud

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; }>({ menyatakan: initialState, penghantaran: () => }); export const StateProvider: NextPage = ({ children }) => const [states, dispatch] = useReducer(reducer, initialState); kembali (  { kanak-kanak }  ); }; eksport const useStatesValue = () => 

Bagaimanakah saya boleh menulis kod dalam konteks fungsi seterusnya yang saya import?

P粉658954914
P粉658954914

membalas semua (1)
P粉495955986

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:

import { NextPage } from "next"; import { createContext, useContext, useReducer, Dispatch, ReactNode } from "react"; // 导入ReactNode类型 import { GlobalStatesType } from "../types"; import reducer, { ActionType, initialState } from "../reducers"; type StateProviderProps = { children: ReactNode; // 定义children属性的类型 }; export const StateContext = createContext<{ states: GlobalStatesType; dispatch: Dispatch; }>({ states: initialState, dispatch: () => {}, }); export const StateProvider: NextPage = ({ children }) => { // 使用StateProviderProps类型 const [states, dispatch] = useReducer(reducer, initialState); return (  {children} {/* 直接使用children */}  ); }; export const useStatesValue = () => useContext(StateContext);

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.

    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan
    Tentang kita Penafian Sitemap
    Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!