我试着让我的玩家掷骰子,然后保存价值。现在发生的情况是,这些值总是被重置,所以只生成1和0。在一个有效的例子中,我希望看到数值像在游戏中一样递增,并看到玩家以5-2或6-0获胜。
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这就是我的行动
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;
}
}我想在不弄乱我的减速器或减速器结构的情况下做到这一点。请问最好的方法是什么?
发布于 2020-02-13 02:36:56
你正在替换你的存储上的值,你需要递增它。试试这个:
return {
...state,
number: action.payload.result,
playerWins: state.playerWins + action.payload.playerWins,
cpuWins: state.cpuWins + action.payload.cpuWins
};https://stackoverflow.com/questions/60194377
复制相似问题