我正在嘗試在我的反應 javascript 專案上應用打字稿
我使用 createContext() 來傳遞 useState() 引數
并應用打字稿,他因為 createContext() 中缺少第一個值而大發雷霆
我也不確定我應該為“setIsOpen”輸入什么型別
我希望你的幫助,如果你有任何答案...
我在下面留下我的代碼截圖 在此處輸入影像描述
export const SmartAccordion = ({children}:SmartAccordionProps) => {
const [isOpen, setIsOpen] = useState(false);
const value = {
isOpen,
setIsOpen
};
return (
<AccordionContext.Provider value={value}>
<S.Wrapper>{children}</S.Wrapper>
</AccordionContext.Provider>
);
};
type AccordionContextType = {
isOpen: boolean;
setIsOpen: any;
}
const AccordionContext = createContext();
const useAccordionContext = () => useContext(AccordionContext);
export const SmartAccordionHeader = ({children, className}:SmartAccordionHeaderProps) => {
const { isOpen, setIsOpen } = useAccordionContext();
return (
<S.HeaderWrapper
onClick={() => setIsOpen(!isOpen)}
className={className}
>
{children}
</S.HeaderWrapper>
);
};
uj5u.com熱心網友回復:
React.Dispatch<React.SetStateAction<boolean>>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/444754.html
