在 Redux 存储中更新用户级别不会反映在剩余的函数调用中

Updating user level in Redux store doesn't reflect in remaining function calls

提问人:deadant88 提问时间:10/19/2023 更新时间:10/19/2023 访问量:15

问:

我正在尝试检查用户在卡牌交易之间的级别,并在他们掌握满足特定条件时更新级别。如果满足特定条件,则该函数会将一个操作调度到 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);
  }
reactjs 异步 redux-toolkit

评论


答: 暂无答案