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 };
目前我有这样一个开关语句,正如你所看到的,我一直在呼叫请求、成功、失败。我想要一个函数来创建一个大小写,它允许我检查'FETCH_USER',它将为请求、成功、失败创建用例。
我尝试过类似case action.type.includes('FETCH_USER')
的东西,但是这只会匹配'FETCH_USER_REQUEST‘的第一个结果并返回它。所以我需要一个函数,把这三个箱子按这个顺序排列。
发布于 2018-07-12 13:24:37
您可以从字符串中删除最后一个单词。
switch (action.type.replace(/_[^_]*$/, '') {
case 'FETCH_USER':
return ...
case 'UPDATE_USER':
return ...
...
}
发布于 2018-07-12 13:23:14
可以用一个简单的if
语句替换它:
if (/(FETCH|UPDATE)_USER/.test(action.type))
return { ...state, loading: action.payload.loading, ...action.payload.data };
https://stackoverflow.com/questions/51314565
复制相似问题