React TS:尽管通过包装器传递方法,child 仍然无法访问 getPage()

React TS: Despite passing method through wrapper, child still can't access getPage()

我正在尝试构建一个可以通过高阶组件共享给一堆 Reader 组件的获取方法。我相信我已经正确构建了 HOC,但我不是 100% 确定。

import React, { Component } from 'react';
    import base from "./firebase";
    export default (ChildComponent) => {
        class GetPage extends Component<{},any> {
            constructor(props: any) {
              super(props);
              this.state = {
                text: "Hii"
              };
            }

            public getPage(page: string) {
              base
                .fetch(page, { context: this, })
                .then(data => this.setState({ text: data }));
                console.log(this.state.text)
            }
            public render() {
                return <ChildComponent getPage={this.getPage} text={...this.state.text} {...this.props}/>;
            }
        }
        return GetPage;
    };

您可以看到我在第二行导入了 HOC,但尽管如此,'Reader' 组件还是抛出了一个错误,指出 'getPage' 无处可寻。

import * as React from "react";
import GetPage from "./fetch";

class Reader extends React.Component<{},any>{

    public componentWillMount() {
        this.getPage('1A1');
        }

    public render() {
    return <div{...getPage('1A1')}>{...this.state.text}</div>;
    }
}

export default (GetPage(Reader));

在您的 Reader 组件中而不是访问 this.getpage 尝试使用 this.props.getpage 我不明白你为什么要这样做:

<div{...getPage('1A1')}>