提问人:deadant88 提问时间:10/19/2023 更新时间:10/19/2023 访问量:15
在 Redux 存储中更新用户级别不会反映在剩余的函数调用中
Updating user level in Redux store doesn't reflect in remaining function calls
问:
我正在尝试检查用户在卡牌交易之间的级别,并在他们掌握满足特定条件时更新级别。如果满足特定条件,则该函数会将一个操作调度到 Redux 存储,该存储也会命中一些中间件以添加该操作的有效负载会话存储。checkLevel()
但是,当前级别似乎不会在函数内部更新 - 这会破坏以下功能(它需要最新的级别才能工作)。这是因为该函数使用的是旧版本的 currentLevel 吗?也可能是因为函数的其余部分没有等待 redux 存储逻辑解析而只是顺其自然吗?发牌逻辑在用户点击游戏卡后触发并发一手新牌。handleDeal()
getPhoneme()
有什么建议吗?
处理成交功能
function handleDeal() {
checkLevel(); //this dispatches to the redux store if condition is met - but the rest of this function will fire?
const leveledData = levelData(currentLevelRef.current, spellingData);
dispatch(setPhonemeSet(leveledData));
const chosenSound = getPhoneme(
leveledData,
correctPhonemeCountsRef.current,
);
const cards = dealCards(chosenSound, leveledData);
dispatch(setDealtCards(cards));
}
checkLevel()
function checkLevel() {
setCheckingLevel(true);
const leveledData = levelData(currentLevelRef.current, spellingData);
const levelUp = allPhonemesMastered(
leveledData,
correctPhonemeCountsRef.current,
);
if (levelUp) {
const newLevel = (currentLevelRef.current || 0) + 1;
let activityMap: ActivityLevelMap = {};
activityMap[currentActivity.activityName] = newLevel;
dispatch(updateStudentLevel(activityMap));
levelUpSfx();
return newLevel;
}
setCheckingLevel(false);
}
答: 暂无答案
评论