【发布时间】:2021-12-06 16:47:58
【问题描述】:
我在 React 和 Node.js 中制作了一个触摸打字游戏,我想让 TypeScript 页面中的函数组件更新一个全局共享的 EXP 变量,以便玩家可以在应用页面中导航并保留他们获得的 XP。一旦他们关闭应用程序,变量就可以重置,它只需要在每个会话中。这是type.tsx里面的XP代码,这是App.js的路由中调用的函数组件
Type.tsx
...
if (currIndex + 1 === length) {
xpM = xpM + 1;
bonusCounter = bonusCounter + 1;
err = err + errorChar;
currXP = xp * correctChar;
addXP = (currXP - (err * 2)) * xpM;
xpPercent = Math.round((uXP/xpNeed) * 100);
(gain as HTMLAudioElement).play();
console.log(xpPercent);
if (err > correctChar) {
addXP = correctChar * 3;
}
tXP = tXP + addXP;
uXP = tXP;
...
我希望 tXP、xpNeed 和 level 变量可以从 Select Test 组件以及其他打字页面访问(有 6 种不同的测试使用不同的文本数组来填充打字文本。)我已经阅读了 Redux可以做到这一点,但在调查之后似乎我需要重新构建整个应用程序才能使用 Redux 工具。有没有一种快速而肮脏的方法来实现这一目标?该应用程序仅用作正在开发的大型 Unity 游戏的演示,因此它不必是一个超级优雅或复杂的解决方案。谢谢!
【问题讨论】:
-
本指南可能会有所帮助:Lifting State Up
-
useContext 很好用,非常感谢!我是 React 的新手,所以我还在发现一些小事情。谢谢两位的建议!
标签: javascript node.js reactjs typescript variables