Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用jest运行测试时的可选链接问题_Reactjs_Jestjs_Babeljs_Enzyme_Babel Jest - Fatal编程技术网

Reactjs 使用jest运行测试时的可选链接问题

Reactjs 使用jest运行测试时的可选链接问题,reactjs,jestjs,babeljs,enzyme,babel-jest,Reactjs,Jestjs,Babeljs,Enzyme,Babel Jest,我正在尝试使用Jest运行测试,目前我正在react应用程序中使用jsx和tsx(从js更改为ts),但当我运行测试时,除了tsx中带有可选阻塞的测试外,所有jsx测试都成功。我总是在输入时收到一个错误意外标记,如下所示 ... <Input value={parent?.child} ... 。。。 对我来说,问题是在我的tsconfig.json中,我使用的是“lib”:[“ES2020”],这与我的节点版本冲突。将节点版本更改为v14解决了此问题。 在这里,您可以找到一个

我正在尝试使用Jest运行测试,目前我正在react应用程序中使用jsx和tsx(从js更改为ts),但当我运行测试时,除了tsx中带有可选阻塞的测试外,所有jsx测试都成功。我总是在输入时收到一个错误
意外标记
,如下所示

...
<Input 
    value={parent?.child}
...
。。。

对我来说,问题是在我的
tsconfig.json
中,我使用的是
“lib”:[“ES2020”]
,这与我的节点版本冲突。将节点版本更改为v14解决了此问题。
在这里,您可以找到一个链接,其中包含具有节点版本的库目标:

{
    "verbose": true,
    "roots": [
      "<rootDir>/app"
    ],
    "setupFiles": [
      "./config/webpack/jest/config.js"
    ],
    "moduleNameMapper": {
      "^components(.*)": "<rootDir>/app/javascript/components$1",
      "^utils(.*)": "<rootDir>/app/javascript/utils$1",
      "^types(.*)": "<rootDir>/app/javascript/types$1",
      "\\.(css|pcss|scss)$": "<rootDir>/spec/__mocks__/styleMock.js",
      "\\.(gif|ttf|eot|svg|png)$": "<rootDir>/spec/__mocks__/fileMock.js"
    },
    "snapshotSerializers": [
      "<rootDir>/node_modules/enzyme-to-json/serializer"
    ],
    "testRegex": "(/__tests__/.*|\\.(test))\\.(ts|tsx|js|jsx)$",
    "moduleFileExtensions": [
      "ts",
      "tsx",
      "js",
      "jsx"
    ],
    "transform": {
      "\\.[jt]sx?$": "babel-jest"
    }
}