我已经有一段时间没有处理过纯粹基于状态的项目了,这是我个人的一个有趣的事情(我们在工作中使用类似 Redux 和持久性,所以全局状态访问更多是由道具驱动的) . 我将嵌套的三元组放入 setState 钩子(setAvailableCharacters)中,但我不是粉丝?有没有更好的方法可以做到这一点?
function levelCharacterUp(forceLevel = false) {
setAvailableCharacters(prevState => (
merge({}, availableCharacters, {
[selectedClassKey]: {
level: forceLevel ? forceLevel : prevState[selectedClassKey].level + 1 <= MAX_CHARACTER_LEVEL ? prevState[selectedClassKey].level + 1 : MAX_CHARACTER_LEVEL
}
})
)
);
}
似乎没有一种更清洁的方法可以做到这一点,同时也尊重prevState链接到新状态。
也试图保持这纯粹是一个功能组件。