Reactjs 调用连接的子引用实例方法的typescript

Reactjs 调用连接的子引用实例方法的typescript,reactjs,react-redux,Reactjs,React Redux,简单地说,我有一个子组件通过redux连接 class Child extends React.Component { foo () {} } export default connect()(Child); 一个父母包含它 class Parent extends React.Component { childRef: React.RefObject<Child> = React.createRef() bar () { if (thi

简单地说,我有一个子组件通过redux连接

class Child extends React.Component {
    foo () {}
}

export default connect()(Child);
一个父母包含它

class Parent extends React.Component {
    childRef: React.RefObject<Child> = React.createRef()

    bar () {
        if (this.childRef.current) {
            /*
             * here typescript complains that 
             * Property 'foo' does not exist on
             * type 'ConnectedComponentClass<typeof Child...'
             */
            this.childRef.current.foo();
        }
    }

    render () {
        return (
            <Child ref={this.childRef} />
        );
    }
}
类父级扩展React.Component{
childRef:React.ReObject=React.createRef()
条(){
如果(此.childRef.current){
/*
*这里typescript抱怨说
*上不存在属性“foo”

*键入“ConnectedComponentClass我遇到了同样的问题,无法找到合法的解决方案。但是,我确实设法通过使用类型“any”重新声明子组件来破解它,如下所示:

class Parent extends React.Component {
    childRef: React.RefObject<Child> = React.createRef()

    bar () {
        if (this.childRef.current) {
            const childRef: any = this.childRef.current;
            childRef.foo();
        }
    }

    render () {
        return (
            <Child ref={this.childRef} />
        );
    }
}
类父级扩展React.Component{
childRef:React.ReObject=React.createRef()
条(){
如果(此.childRef.current){
const childRef:any=this.childRef.current;
childRef.foo();
}
}
渲染(){
返回(
);
}
}

如果你能想出一个更好的解决方案,我很乐意听听。

还有其他人找到了解决方案吗?
class Parent extends React.Component {
    childRef: React.RefObject<Child> = React.createRef()

    bar () {
        if (this.childRef.current) {
            const childRef: any = this.childRef.current;
            childRef.foo();
        }
    }

    render () {
        return (
            <Child ref={this.childRef} />
        );
    }
}