我想在我的preact应用中使用一些与React兼容的软件包。我已经按照说明安装了preact-compat。现在,当我向应用程序添加一个React组件时,我仍然需要从preact导入“ h”,否则会出现错误: 未捕获(承诺)ReferenceError:未定义h。例如:
import React, { Component } from 'react';
import { render } from 'react-dom';
import { h } from 'preact';
export default class TestForm extends Component {
constructor(props) {
super(props);
}
render(props, state) { console.log('TestForm::render');
return (
<div>Hello</div>
);
}
}
如果我不从react导入'h',则会发生错误。我该如何解决?
我正在使用Browserify和Babel并进行了以下更改: 在package.json中:
"aliasify": {
"aliases": {
"react": "preact-compat",
"react-dom": "preact-compat",
// Not necessary unless you consume a module using `createClass`
"create-react-class": "preact-compat/lib/create-react-class",
// Not necessary unless you consume a module requiring `react-dom-factories`
"react-dom-factories": "preact-compat/lib/react-dom-factories"
}
}
以及.babelrc中的
"plugins": [
["module-resolver", {
"root": ["."],
"alias": {
"react": "preact-compat",
"react-dom": "preact-compat",
// Not necessary unless you consume a module using `createClass`
"create-react-class": "preact-compat/lib/create-react-class",
// Not necessary unless you consume a module requiring `react-dom-factories`
"react-dom-factories" "preact-compat/lib/react-dom-factories"
}
}]
],
"presets": [
"react"
]
答案 0 :(得分:0)
将此添加到babel配置
plugins: [
["@babel/transform-react-jsx", { pragma: "h" }]
],