【问题标题】:Is there a way to use own component class that extends React.Component without a need to import react in every file?有没有办法使用自己的组件类来扩展 React.Component 而无需在每个文件中导入反应?
【发布时间】:2020-08-11 05:49:08
【问题描述】:

我创建了自己的 typescript 抽象类,它扩展了 React.Component。 我想使用这个类作为我应用程序中每个组件的基础。 但是,如果我不添加 React 的 import 语句,它就不起作用 - JSX 语法会产生错误。

我想完全抽象 React.Component 并使用我自己的基类,所以将来我可能想从 react 切换到其他东西。必需的 import 语句使它有点麻烦。

有没有办法在打字稿中全局导入某些东西,或者任何其他解决方案?

我不使用 webpack 或 babel,因为它们在我的 lerna monorepo 中是独立的、可重复使用的包。

【问题讨论】:

    标签: reactjs typescript


    【解决方案1】:

    每当您编写类似<div> 的内容时,JSX 工厂都会将 JSX 转换为有效的 JavaScript/TypeScript 函数调用,在本例中为 React.createElement('div', ..

    这在 React.js 网站上的 JSX Introduction 中有很好的解释。

    因此,正如您所见,React 应该定义,因为它在您的代码中被调用。如果您想切换到其他内容,则需要更改 jsx factory function with the so-called pragma,即在 JSX 编译中替换 React,并替换您的导入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-13
      • 2017-07-27
      • 2017-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      相关资源
      最近更新 更多