使用 React/Redux,我有一个简单的 React 游戏,其中用户从多个选项中响应提示,我想记录响应以及它是否正确。我有一个'GAME_BEGIN'
像这样的减速器
case 'GAME_BEGIN':
return {
...state,
timeRemaining: action.timeRemaining,
gameIsInProgress: true,
problems: [
{
problem: action.problem, // string
solution: action.solution, // string
incorrectResponses: action.incorrectResponses, // array of strings
}
]
};
现在我想在 action 上为第一个问题对象添加response
和isCorrect
属性'GAME_SUBMIT_RESPONSE'
,然后向问题数组添加一个新问题。所以经过几次迭代(可能有很多问题),我想状态应该看起来像
...state,
problems: [
{
problem: something, // string
solution: something, // string
incorrectResponses: something, // array of strings
response: something,
isCorrect: somethingBool
},
...
{
problem: action.problem, // string
solution: action.solution, // string
incorrectResponses: action.incorrectResponses, // array of strings
}
]
对于第一个问题,我可能会通过重写整个problems
数组来添加属性,但是一旦我添加了新对象呢?
或者我是否以错误的方式思考这个问题。我还认为我可以展平状态并problems
完全摆脱数组,在每次提交时重置问题,并通过 api 调用将必要的数据登录到数据库。这是预期的做事方式吗?