出于测试目的,我需要向 ReactJS 应用程序的组件添加自定义属性。我尝试使用 2 个不同的插件,但是,它们将属性应用于该组件中的所有 JSXElements,我想将其应用于第一个,否则,我最终会出现不必要的属性重复,这使得编写测试更加困难我正在努力挽救脆弱性。
我浏览了文档,找不到如何遍历第一个 JSXElement,所以我自己尝试了几件事,但都失败了,这些是
下面从不添加属性
visitor: {
JSXElement( path, state ) {
if ( path.key === 0 )
{
path.node.openingElement.attributes.push(
t.jSXAttribute(
t.jSXIdentifier( 'data-e2e' ),
t.stringLiteral( `${someValue}` )
)
);
}
}
}
以下通过未定义中 firstElem 的错误
visitor: {
Program( path, state ) {
let arr = [];
path.traverse( {
enter( jsxPath )
{
if ( jsxPath.node.type === 'JSXElement' )
{
arr.push( jsxPath );
}
}
} );
let firstElem = arr[ 0 ]; <<< undefined
firstElem.node.openingElement.attributes.push(
t.jSXAttribute(
t.jSXIdentifier( 'data-e2e' ),
t.stringLiteral( `${someValue}` )
)
);
}
}
}
任何人都可以建议如何获得第一个 JSXElement。