Bug报告
我想创建自己的JSX-Factory,它引用this
,例如this.createElement
。
🔎搜索词
自定义JSX工厂,这个在jsx工厂中
🕗版本与回归信息
在版本4.7.2和版本4.8.0-dev.20220524(@next)上进行了测试。
- 这是我尝试的每个版本的行为,我查阅了关于JSX的FAQ条目。
⏯Playground链接
遗憾的是,Playground不支持jsxFactory
tsconfig字段,因此无法在Playground中显示。
💻代码
{
"compilerOptions": {
"jsx": "react",
"jsxFactory": "this.customCreateElement"
}
}
class ExampleComponent {
render() {
return <app-example>
<app-child></app-child>
</app-example>;
}
customCreateElement(tagName: string, attributes: { [name: string]: any }, ...children: []) {
// ... create something in the dom or whatever
}
}
🙁实际行为
TypeScript发出正确的代码(带有this引用),但仍然抛出错误:
index.tsx:3:17 - error TS2304: Cannot find name 'this'.
3 return <app-example>
~~~~~~~~~~~
index.tsx:4:14 - error TS2304: Cannot find name 'this'.
4 <app-child></app-child>
~~~~~~~~~
Found 2 errors in the same file, starting at: index.tsx:3
🙂预期行为
输出保持不变-但没有错误消息。
2条答案
按热度按时间wydwbb8l1#
如果这个问题很简单,我们会修复它。否则,我认为这太糟糕了,除非有更强烈的理由支持添加对该功能的支持。
avkwfej42#
我很想贡献自己,有没有起点/你知道我应该从哪里开始挖掘吗?我已经检查了代码并让它运行起来了!