javascript - 如何使这个 switch case 语句不那么冗长?
问题描述
switch (action.type) {
case 'FETCH_USER_REQUEST':
case 'FETCH_USER_SUCCESS':
case 'FETCH_USER_FAILIURE':
return { ...state, loading: action.payload.loading, ...action.payload.data };
case 'UPDATE_USER_REQUEST':
case 'UPDATE_USER_SUCCESS':
case 'UPDATE_USER_FAILIURE':
return { ...state, loading: action.payload.loading, ...action.payload.data };
目前我有一个这样的 switch 语句,你可以看到我不断地调用 REQUEST、SUCCESS、FAILURE。我想要一个函数来创建一个案例,让我检查'FETCH_USER',它会为REQUEST、SUCCESS、FAILURE 创建案例。
我尝试过类似case action.type.includes('FETCH_USER')
的方法,但这只会匹配“FETCH_USER_REQUEST”的第一个结果并返回。所以我需要一个函数按顺序排列这三种情况。
解决方案
恕我直言,它可以用一个简单的if
语句代替:
if (/(FETCH|UPDATE)_USER/.test(action.type))
return { ...state, loading: action.payload.loading, ...action.payload.data };
推荐阅读
- apache - 如何使用 Linux 从 apache2 激活重写 URL
- express - 上传的图像未发送到文件夹
- javascript - 如何重新渲染已在 React 组件中删除的子 DOM 元素?
- javascript - 使用 element.classList.add() 查看不立即从服务更新
- swift - Swift 标签不更新
- java - 如何从 Debezium 创建的 avro 消息中获取字段?
- size - 如何获取雪花数据仓库中模式的总字节大小
- postgresql - Postgres序列不生成顺序值
- docker - mac 验证失败 - docker-compose up 时出现认证异常阻止 ASPNETCORE Docker-Container 启动
- javascript - 我应该如何自动启动 node.js 脚本