作为 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/