Reactjs 将属性附加到使用React.forwardRef包装的功能组件
我用Reactjs 将属性附加到使用React.forwardRef包装的功能组件,reactjs,typescript,Reactjs,Typescript,我用React.forwardRef包装了一个组件,碰巧它也是一个复合组件 我不知道我该如何维护 Form.Item = FormItem; 当表单组件函数被forwardRef包装时 const Form = React.forwardRef((props, ref) => { return <form></form>}); const Form=React.forwardRef((props,ref)=>{return}); Typescript给了我一
React.forwardRef
包装了一个组件,碰巧它也是一个复合组件
我不知道我该如何维护
Form.Item = FormItem;
当表单组件函数被forwardRef
包装时
const Form = React.forwardRef((props, ref) => { return <form></form>});
const Form=React.forwardRef((props,ref)=>{return});
Typescript给了我一个错误(严格地)说
类型“ForwardRefExoticComponent>”上不存在属性“Item”。ts(2339)
只是为了更清楚地说明解决方案,因为它在一个外部站点上(归功于原作者,谢谢@Antoan Elenkov)
导出接口道具={
…你的支持者;
};
导出接口ComponendComponent扩展React.ForwardRefExoticComponent{
您的静态函数或某些小部件:()=>无效;
}
常量组件=React.forwardRef((props,ref)=>(
))作为组成部分;
Component.yourstaticfunctionorsomethingliekethat=()=>{};
能否修改表单
组件?或者它来自第三方库?我可以修改我的表单组件。这是怎么回事?它似乎是相关的。谢谢看看并解决你的问题。
export interface Props = {
...yourPropsHere;
};
export interface CompoundedComponent extends React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLInputElement>> {
yourStaticFunctionOrSomethingLikeThat: () => void;
}
const Component = React.forwardRef<HTMLInputElement, Props>((props, ref) => (
<input ref={ref} {...props} />
)) as CompoundedComponent;
Component.yourStaticFunctionOrSomethingLikeThat = () => {};