我需要在reducer对象中添加单词“Copy”。
WidgetList是一个对象数组。它由[{widgettype:'barchart' widgetName:'Widget'}]
组成,接受输出:[{widgettype:'barchart' widgetName:'copy-Widget'}]
当我点击重复按钮时,我能够清楚地获得重复的项目,以区分重复和原始小部件。需要在widgetName前添加“Copy'Word”。
这是我的代码:
// Reducer
case types.DUPLICATE_DATA:
const duplicatedWidget = {
...widgetToDuplicate,
widgetId: uuid(),
};
return { ...state,
boardList: [...newBoardList]
};
答案 0 :(得分:1)
你可以这样做,
case types.DUPLICATE_DATA:
var str = widgetToDuplicate.widgetName;
var copyStr = str.match(/copy\([0-9]+\)$/g);
if(copyStr){
var number = parseInt(copyStr[copyStr.length-1].match(/[0-9]+/g)[0]);
str = str.replace(copyStr, "copy("+(number+1) +")")
}
else str = str+'-copy(1)';
const duplicatedWidget = {
...widgetToDuplicate,
widgetName: str,
widgetId: uuid(),
};
return { ...state,
boardList: [...newBoardList]
};