如何将“COPY”一词附加到减速器状态进行反应?

时间:2018-06-18 09:44:11

标签: javascript reactjs redux

我需要在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]
    };

1 个答案:

答案 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]
    };