машинопись, вызывающая связанный дочерний метод ref - PullRequest
0 голосов
/ 27 ноября 2018

Проще говоря, у меня есть дочерний компонент, связанный с помощью 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.ComponentType<Child>>

явно при экспорте дочернего компонента, но все еще не работает.

1 Ответ

0 голосов
/ 20 декабря 2018

У меня была та же проблема, и я не мог найти законное решение.Мне, однако, удалось взломать его, повторно выделив дочерний компонент с типом '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} />
        );
    }
}

Если вам когда-нибудь удалось найти лучшее решение, я бы хотел услышать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...