javascript - 如何获取自定义 React Babel pragma 以将字符串作为参数而不是函数传递
问题描述
作为如何创建自己的 babel 处理器替代 `React`的后续操作,我收到此错误:
react-dom.development.js:506 警告:该标签在此浏览器中无法识别。如果您打算渲染一个 React 组件,请以大写字母开头。
- 在富
- 在未知
- 在酒吧
如果我将其设为大写字母,则会出现此错误:
未捕获的 ReferenceError:未定义 Foo
我猜这是因为它将它作为这样的函数传递:
React.createElement(Foo)
我的问题是,如何让它作为字符串传递?
MyThing.create('Foo')
我想知道如何用大写和小写字母来做。
解决方案
据我所知,您必须进行修改@babel/plugin-transform-react-jsx
才能做到这一点。默认情况下,它假定初始封顶标签是组件(函数/类),而小写标签是 HTML 标签名称。它将组件直接传递给由pragma
配置参数标识的函数(React.createElement(Foo)
例如,默认情况下),但 HTML 标记名称为字符串 ( React.createElement("div")
)。该插件没有列出任何用于更改该行为的配置选项,因此如果您需要它,您必须分叉该插件并对其进行修改以按照您希望的方式工作。
推荐阅读
- r - 如何使用 str_detect 在两个不同的数据帧之间进行匹配?
- sql - SQL 语句中的合并语句在单个 SP 中添加、更新、删除
- java - QueryDsl 可以处理更大量的数据吗?
- python - python中的电报机器人代理
- javascript - 与子进程同步运行 JavaScript 的最佳方法是什么?
- android - 无法解析方法“addOnCompleteListener”和“setonclicklistener”
- mongodb - 加入mongo时火花结构化流中的巨大hadoop appdata
- amazon-web-services - 如何设置 Spark 配置以在 AWS 上使用 TASK 节点?
- javascript - 如何使用对象键更新 javascript 映射的值
- python - Tkinter 的 ScrolledText 不适应输入