javascript - 如何获取自定义 React Babel pragma 将字符串作为参数而不是函数传递

标签 javascript reactjs babeljs

作为 How to create your own babel processor alternative to `React` 的后续行动,我收到此错误:

react-dom.development.js:506 Warning: The tag is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.

  • in foo
  • in Unknown
  • in Bar

如果我将其设为大写字母,则会出现此错误:

Uncaught ReferenceError: Foo is not defined

我猜这是因为它将它作为这样的函数传递:

React.createElement(Foo)

我的问题是,如何让它作为字符串传递?

MyThing.create('Foo')

我想知道如何同时使用大写和小写字母。

最佳答案

据我所知,您必须修改 @babel/plugin-transform-react-jsx要做到这一点。默认情况下,它假定最初的大写标签是组件(函数/类),小写标签是 HTML 标签名称。它将组件直接传递给由 pragma 配置参数标识的函数(例如,默认情况下为 React.createElement(Foo)),但 HTML 标记名称作为字符串 ( React.createElement("div"))。该插件没有列出任何用于更改该行为的配置选项,因此如果您需要它,您必须 fork 该插件并修改它以按照您希望的方式工作。

关于javascript - 如何获取自定义 React Babel pragma 将字符串作为参数而不是函数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57128615/

相关文章:

reactjs - Material UI自动完成旋转图标展开或折叠

reactjs - React 路由器 - 将 api 数据传递给链接的组件以使用新页面打开

reactjs - React-native-navigation 导航时更改屏幕方向

npm - 如何使用 webpack 在 npm 包子文件夹中导入模块?

node.js - es6 导出/导入多个类 - instanceof 返回 false

javascript - 通过ajax从本地目录解析gz文件中的json - angularJS

javascript - 如何更改此 JavaScript 以使用箭头函数来访问属性

node.js - 将 Benchmarkjs 与 Webpack 和 Babel 结合使用

JavaScript:返回关联数组而不是普通数组

javascript - IMacros 从 CSV 文件读取/写入