首页 > 解决方案 > 升级到 react-scripts 4.0.3 在 npm test 上出现类型错误

问题描述

我正在将我的 react-scripts 从 v3 更新到版本 4,当我运行 npm test 时,它给了我下面的错误。我在这里看到尝试使用 promise.resolve,但我的应用程序的功能与给出的示例不同,我需要一些帮助来弄清楚该怎么做。依赖项

 "dependencies": {
"@fortawesome/fontawesome-svg-core": "^1.2.35",
"@fortawesome/free-solid-svg-icons": "^5.15.3",
"@fortawesome/react-fontawesome": "^0.1.14",
"@fullcalendar/daygrid": "^5.6.0",
"@fullcalendar/react": "^5.6.0",
"@fullcalendar/timegrid": "^5.6.0",
"@wojtekmaj/react-datetimerange-picker": "^3.2.0",
"algolia-places-react": "^1.6.1",
"bootstrap": "^4.6.0",
"fullcalendar-reactwrapper": "^1.0.7",
"fuse.js": "^6.4.6",
"html-react-parser": "^1.2.6",
"immutability-helper": "^3.1.1",
"match-sorter": "^6.3.0",
"moment": "^2.29.1",
"rc-time-picker": "^3.7.3",
"react": "^17.0.2",
"react-bootstrap": "^1.5.2",
"react-collapsible": "^2.8.0",
"react-cookie": "^4.0.3",
"react-datepicker": "^3.8.0",
"react-dom": "^17.0.2",
"react-helmet": "^6.0.0-beta.2",
"react-js-pagination": "^3.0.3",
"react-loader-spinner": "^3.1.4",
"react-moment": "^0.9.6",
"react-nl2br": "^1.0.2",
"react-responsive-modal": "^4.0.1",
"react-router-dom": "^5.2.0",
"react-scripts": "^4.0.3",
"react-select": "^4.3.0",
"react-table": "^6.11.5",
"recharts": "^2.0.9",
"sweetalert": "^2.1.2",
"validator": "^13.6.0"

},

"devDependencies": {
"enzyme": "^3.11.0",
"enzyme-adapter-react-17-updated": "^1.0.2",
"glob-all": "^3.2.1",
"jest-fetch-mock": "^3.0.3",
"path": "^0.12.7",
"purgecss": "^4.0.3",
"react-test-renderer": "^17.0.2"

},

完整的方法在这里

loadOutreachList() {
request(api(`schedule/outreach`), this.signal, 'GET')
  .then((res) => {
    if (this.loaded) {
      switch (res.status) {
        case 200:
          res.json()
            .then((res) => {
              this.handleChange('outreachList',res);
              this.setState({
                loaded: true,
              });
            },err => console.log(err));
          break;
        default:
          this.setState({
            loaded: true,
            error: true,
        });
      }
    }
},err => console.log(err));

}

在这里测试输出

TypeError: Cannot read property 'then' of undefined

  94 |
  95 |   loadOutreachList() {
> 96 |     request(api(`schedule/outreach`), this.signal, 'GET')
     |     ^
  97 |       .then((res) => {
  98 |         if (this.loaded) {
  99 |           switch (res.status) {

  at OutreachTable.loadOutreachList (src/components/outreach/outreachTable.js:96:5)
  at OutreachTable.componentDidMount (src/components/outreach/outreachTable.js:76:10)
  at fn (node_modules/enzyme/src/ShallowWrapper.js:429:22)
  at Object.batchedUpdates (node_modules/enzyme-adapter-react-17-updated/src/ReactSeventeenAdapter.js:751:16)
  at new ShallowWrapper (node_modules/enzyme/src/ShallowWrapper.js:428:26)
  at shallow (node_modules/enzyme/src/shallow.js:10:10)
  at Object.<anonymous> (src/components/outreach/outreachTable.test.js:7:3)

标签: javascriptnode.jsreactjsnpmreact-fullstack

解决方案


推荐阅读