javascript - 升级到 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)
解决方案
推荐阅读
- javascript - 如何在 base64 中编码我的实例 ID
- reactjs - 如何向反应滚动事件添加过渡
- sql - 如何使用 POWERSHELL 脚本获取此 SQL 输出
- swift - 如果我使用 UIView.animate 我的 Mac 的 CPU 负载高 200%
- java - `onCreate` 方法没有被调用
- xml - 如何使用groovy删除特定的父(带子)部分,只有元素XML
- calendar - 如何在列出 icloud 日历时为每个请求获得相同的 propfind 响应?
- neo4j - Neo4j Cypher - 返回相同类型的节点及其嵌套节点
- uwp - 将应用程序上传到 Windows 应用商店时“此提交失败,错误代码 1004”
- php - 如何在数组中使用具有不同名称的多个文本框在 mysql 中插入多行