Javascript 如何在react中的reducer状态中添加单词“COPY”?
我需要在reducer对象中添加word Copy WidgetList是一个对象数组。它由[{widgettype:'barchart'widgetName:'Widget'}]组成,接受的输出:[{widgettype:'barchart'widgetName:'copy-Widget'}] 当我点击复制按钮时,我能够清楚地获得复制项,以区分复制和原始小部件。需要在widgetName前面添加“复制”字 这是我的密码:Javascript 如何在react中的reducer状态中添加单词“COPY”?,javascript,reactjs,redux,Javascript,Reactjs,Redux,我需要在reducer对象中添加word Copy WidgetList是一个对象数组。它由[{widgettype:'barchart'widgetName:'Widget'}]组成,接受的输出:[{widgettype:'barchart'widgetName:'copy-Widget'}] 当我点击复制按钮时,我能够清楚地获得复制项,以区分复制和原始小部件。需要在widgetName前面添加“复制”字 这是我的密码: // Reducer case types.DUPLICATE_DAT
// Reducer
case types.DUPLICATE_DATA:
const duplicatedWidget = {
...widgetToDuplicate,
widgetId: uuid(),
};
return { ...state,
boardList: [...newBoardList]
};
你可以这样做
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]
};
你是说预弯?为什么不像duplicatedWidget={…widgetToDuplicate,widgetName:'COPY+'+widgetToDuplicate.widgetName}这样的东西我们可以为它添加计数,比如说COPY1+Widget COPY2+WidgetSure,如果你的小部件有一个唯一的名称,现在,如果人们从复制的小部件复制,它的唯一名称不是小部件本身,而是已经copyxxx了。因此,要么你必须检查所有的小部件,检查最高的copyx小部件并增加一个,要么你为每个副本保留一个id,但你需要进行某种检查,然后如果名称已经在壁画中复制-当我单击“5复制”时,它会给出小部件副本copy我们可以在这里附加计数吗?比如Widget1,Widget2yes,您将不得不对副本进行字符串搜索,然后解析后的数字并附加此字符串需要在redux中搜索,也需要在操作中进行更改??你能在const duplicatedWidget=.之前更新你的答案吗。。。通过从widgetoduplicate.widgetName中查找copynumber来处理新名称。然后,增加数字并重新分配。