首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存Action或Reducer上的值?

保存Action或Reducer上的值?
EN

Stack Overflow用户
提问于 2020-02-13 01:54:24
回答 1查看 28关注 0票数 0

我试着让我的玩家掷骰子,然后保存价值。现在发生的情况是,这些值总是被重置,所以只生成1和0。在一个有效的例子中,我希望看到数值像在游戏中一样递增,并看到玩家以5-2或6-0获胜。

代码语言:javascript
复制
import { GENERATE_NUMBER } from './types';
import generateDiceNumber from '../util/DiceNumber';
export const rollDice = () => {
  return dispatch => {
    const result = [generateDiceNumber(), generateDiceNumber()];
    let playerWins = 0;
    let cpuWins = 0;
    if (result[0] > result[1]) {
      playerWins++;
    } else if (result[0] < result[1]) {
      cpuWins++;
    }
    return dispatch({
      type: GENERATE_NUMBER,
      payload: {
        result,
        playerWins,
        cpuWins
      }
    });
  };
};

//missing error validation ofc

这就是我的行动

代码语言:javascript
复制
import { GENERATE_NUMBER, PLAYER_RESULT, CPU_RESULT } from '../actions/types';

const initialState = {
  number: [],
  playerWins: 0,
  cpuWins: 0
};

export default function(state = initialState, action) {
  switch (action.type) {
    case GENERATE_NUMBER:
      return {
        ...state,
        number: action.payload.result,
        playerWins: action.payload.playerWins,
        cpuWins: action.payload.cpuWins
      };

    default:
      return state;
  }
}

我想在不弄乱我的减速器或减速器结构的情况下做到这一点。请问最好的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2020-02-13 02:36:56

你正在替换你的存储上的值,你需要递增它。试试这个:

代码语言:javascript
复制
return {
        ...state,
        number: action.payload.result,
        playerWins: state.playerWins + action.payload.playerWins,
        cpuWins: state.cpuWins + action.payload.cpuWins
      };
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60194377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档