2 回答
TA贡献1883条经验 获得超3个赞
您似乎错过了GlobalConsumer使用上下文的机会(请参阅此处)。
const SignInPageBase = () => (
<GlobalProvider>
<GlobalConsumer>
{({ toggleAuthError }: any) => (
<Form toggleAuthError={toggleAuthError} />
)}
</GlobalConsumer>
</GlobalProvider>
);
TA贡献1860条经验 获得超8个赞
Form是一个标准的 HTML 标签(与 react 组件相反)。您收到此错误是因为toggleAuthError它不是Form标签的标准属性。
一个好的解决方案是坚持标准并props仅对您的反应组件使用自定义,在这种情况下可能是Form用您自己的组件包装并toggleAuthError在其上使用属性。
有时这是不可能的或根本无法维护的(比如当您使用需要直接在元素上使用此类属性的外部库时),因此另一种选择是扩展类型定义以包含您喜欢的添加项。
为此,请创建一个类型定义文件(如my-app.d.ts),然后您可以像通常使用打字稿一样添加您喜欢的定义:
declare module 'react' {
interface HTMLAttributes<T> extends AriaAttributes, DOMAttributes<T> {
'toggleAuthError'?: string;
}
}
添加回答
举报