当我使用context
来共享数据时,我从typescript中得到了一个类型错误Property 'toggleExpand' does not exist on type 'AccHeaderContextProps | undefined'.ts(2339)
。但是所有的属性我都已经声明了。
interface AccHeaderContextProps {
expand: boolean;
toggleExpand: () => void;
}
const AccordionContext = createContext<AccHeaderContextProps | undefined>(
undefined
);
当我使用它抛出错误:
function AccordionHeder(props: AccHeaderProps) {
const { title } = props;
const { expand, toggleExpand } = useContext(AccordionContext);//error
return (
<button onClick={toggleExpand}>
{title} <span>{expand ? "-" : "+"}</span>
</button>
);
}
1条答案
按热度按时间11dmarpk1#
如错误所述,
undefined
没有toggleExpand
的属性,因为它根本不存在,也不是对象。您可以为上下文提供一个带有预期值的 initial 对象。
在呈现组件时,您将使用上下文并获取上下文提供器中定义的值。