如何在化简器的映射函数内为状态分配值

时间:2019-07-04 13:43:02

标签: reactjs redux reducers

试图传递卡的单击类型值,而我想获取的是该卡的类型。 state.memoryCards 在日志中输出以下内容:

  • 0:{名称:“飞机”,类型:“ 200”,最大速度:880,图片名称:“ a1”,...}
  • 1:{name:“飞机”,类型:“ 300”,最大速度:880,imageName:“ a2”,...}
  • 2:{名称:“飞机”,类型:“ 200ER”,最大速度:920图像名称:“ a8”,...}
  • 3:{name:“飞机”,类型:“ 300ER”,最大速度:920 imageName:“ a9”,...}

您可能会看到 state.currentCardType = card.type 并不是一个好习惯,因为状态已被突变。因此,我想重构代码,但不确定如何编写代码,因为它位于map函数内部。

case types.CARD_CHECK: {
            return {
                ...state,
                memoryCards: state.memoryCards.map((card, index) => {
                    console.log(state.memoryCards)
                    if(index === action.index) {
                        
                        state.currentCardType = card.type;  <---- I am talking about this on
  
                        return {
                            ...card,
                            flipped: !card.flipped
                        }
                    }

                    return card
                })
            }
        }

1 个答案:

答案 0 :(得分:0)

您可以先派生修改后的$ docker build --secret id=script,src=my_script.sh ,然后再memoryCards,像这样

currentCardType