reactjs - 通过 react-scripts-ts 进行测试时出现“语法:意外标识符”错误
问题描述
使用 react-scripts-ts (2.17.0) 我正在尝试设置一个测试套件。但我收到“语法错误:意外标识符”。
这是配置:
tsconfig.json(使用 JSX 手册的标准)
{
"compilerOptions": {
"jsx": "react"
}
}
这是组件的布局:
./App.tsx
interface IAppProps extends WithStyles<typeof styles> {
// ...
}
export interface IAppState {
// ...
}
class App extends React.Component<IAppProps, IAppState> {
// ...
}
export default withStyles(styles)(App);
这将是测试设置:
./app.test.ts
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
it('renders without crashing', () => {
const app = React.createElement(App);
const div = document.createElement('div');
ReactDOM.render(app, div);
});
我应该以某种方式运行 Babel 吗?
解决方案
结果样式被加载为 es 而不是由文件类型定义。在这里找到答案:https ://github.com/mui-org/material-ui/issues/14349
更新自"react-scripts-ts": "2.17.0"
至"react-scripts-ts": "^3.1.0"
然后改了:
import withStyles from '@material-ui/core/es/styles/withStyles';
import { WithStyles } from '@material-ui/core/styles/withStyles';
至:
import { withStyles, WithStyles } from '@material-ui/core';
它有效。
推荐阅读
- android - 是否需要手动注入每个类?
- kubernetes - 配置 nodeport 但 kubernetes 仍然给出端口范围
- tensorflow - 使用 AI 检测损坏的零件
- swift - Swift Timer 不适用于旧 iPhone 型号
- python - 使用正则表达式对列表中的字符串进行分组
- unity3d - 为什么这些游戏对象不能在 Unity3D 中实例化?
- magnolia - 如何从 Model java 类访问 Magnolia v5.7 组件属性
- flutter - How to upload a image url downloaded from firebase storage to firestore document for newly registered user?
- javascript - 如何知道 WebGL 何时完成绘制?
- python - 我想提取从特定 txt 文件中给出的数据并将其保存在 excel 或任何电子表格应用程序中