Проптипы не запрашиваются, когда React Component становится модулем NPM и используется в проекте. - PullRequest
0 голосов
/ 01 апреля 2020

Я создал простой компонент реагирования, чтобы научиться создавать модуль npm. У него есть простой div, который отображает текст. Этот текст был обозначен как proptypes.

это компонент One.jsx

import React from 'react';
import PropTypes from "prop-types";

const One = (props) => {
    return <div>One says {props.text}</div>
};
One.propTypes = {
    text: PropTypes.string.isRequired
};

export default One;

В модуле, который я пытался использовать, и он спрашивает у меня текст проп. PropTypes работал как положено.

После того, как он был собран и опубликован sh, я приступил к использованию в проекте. После установки я поместил текст поддержки, и он работал правильно.

Но, в конце концов, я понял, что на этот раз реквизит не был задан при использовании компонента в редакторе кода. Он не предлагает никакой опоры.

В консоли я мог видеть это, когда не помещал текст опоры:

Предупреждение: сбойный тип опоры: проп text помечено как обязательное в i, но его значение равно undefined. в я (созданный Компонентом)

in Component (created by Component)
in div (created by Component)
in div (created by Component)
in div (created by Component)
in div (created by Component)
in ErrorBoundary (created by Component)
in Component (created by Component)
in Component (created by Context.Consumer)
in Route (created by ContainerRoot)
in Switch (created by ContainerRoot)
in Suspense (created by ContainerRoot)
in ContainerRoot (created by HotExportedContainerRoot)
in AppContainer (created by HotExportedContainerRoot)
in HotExportedContainerRoot (created by App)
in Router (created by BrowserRouter)
in BrowserRouter (created by App)
in StylesContextProvider (created by App)
in ThemeProvider (created by App)
in ProvideAuth (created by App)
in Provider (created by App)
in App

Он даже не говорит мне, у какого Компонента была проблема. Есть какие-то идеи, как я могу:

  1. Получить редактор кода, чтобы спросить меня о реквизитах.
  2. Получить консоль, чтобы сказать, какой компонент получил ошибку.

Спасибо.

...