我有一个小项目,我想通过从<ThemeContext.Provider />到<ThemeProvider />。但当我尝试,我得到了<ThemeProvider. />(与**额外的点!!! *)下面是一个例子:www.example.comhttps://astexplorer.net/#/gist/e06688772514aefc6e776a6a0031dbf5/eb8bf6546886b2ea2f2bf5bf425ebe024f49d217
<ThemeContext.Provider />
<ThemeProvider />
<ThemeProvider. />
9avjhtql1#
你可以试着找到所有的JSXMemberExpression,这些JSXMemberExpression有效地对应于在开始或结束元素JSXBoundaryElement名称中有Foo.Bar。过滤那些访问ThemeContext的。然后用identifier替换它们。
JSXMemberExpression
JSXBoundaryElement
Foo.Bar
ThemeContext
source .find(j.JSXMemberExpression) .filter((path) => path.value.object.name === "ThemeContext") .forEach((path) => { j(path).replaceWith(j.identifier("ThemeProvider")); });
1条答案
按热度按时间9avjhtql1#
你可以试着找到所有的
JSXMemberExpression
,这些JSXMemberExpression
有效地对应于在开始或结束元素JSXBoundaryElement
名称中有Foo.Bar
。过滤那些访问ThemeContext
的。然后用identifier替换它们。