Javascript 如何在react中的reducer状态中添加单词“COPY”?

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对象中添加word Copy

WidgetList是一个对象数组。它由[{widgettype:'barchart'widgetName:'Widget'}]组成,接受的输出:[{widgettype:'barchart'widgetName:'copy-Widget'}]

当我点击复制按钮时,我能够清楚地获得复制项,以区分复制和原始小部件。需要在widgetName前面添加“复制”字

这是我的密码:

// 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来处理新名称。然后,增加数字并重新分配。