React HO C ESLint Ошибка: распространение реквизита запрещено - PullRequest
0 голосов
/ 07 августа 2020

неужели eslint недостаточно умен? HO C довольно общий c, поэтому я не могу точно указать входящие параметры / реквизиты, потому что это динамический c в зависимости от того, какой компонент этот HO C обертывает в любой момент времени.

Я получаю props spreading is forbidden

введите описание изображения здесь

withTracker.tsx

const withTracker = (WrappedComponent: any, options: any = {}) => {
    options.cookieDomain = 'xxxx';
    const trackPage = (page: any) => {
        GoogleAnalytics.set({
            page,
            ...options,
        });
        GoogleAnalytics.pageview(page);
    };

    const HOC = class HOC extends Component <{ location: any }> {
        componentDidMount() {
            const page = this.props.location.pathname;
            trackPage(page);
            window.scrollTo(0, 0);
        }

        componentDidUpdate(prevProps: any) {
            const currentPage = prevProps.location.pathname;
            const nextPage = this.props.location.pathname;

            if (currentPage !== nextPage) {
                trackPage(nextPage);
            }
        }

        render() {
            return <WrappedComponent {...this.props} />;
        }
    };

    return HOC;
};

export default withTracker;

Ответы [ 2 ]

1 голос
/ 07 августа 2020

По-видимому, нет причин, по которым вы не можете распространять этот реквизит; просто ваша конфигурация ESLint считает, что вам не следует этого делать. Правило описано в документации ; это просто вопрос качества и стиля кода. Измените свой код, чтобы он соответствовал правилу, если хотите, или если вы не хотите или не можете, отключите правило на уровне строки, файла или конфигурации.

1 голос
/ 07 августа 2020

Просто отключите правило eslint для файла или указанной строки c.

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