问题标签 [global-state]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
40 浏览

java - 将所需变量传递给所有代码的最佳设计模式

基本上,我有一个布尔值,在大型 API 项目中,我的所有类中有 20% 都在使用它。从实用方法到更大的类,一切都使用它。我可以在程序启动时设置状态(不会改变),但不知道访问它的“最佳”方式。

最初,我选择了依赖注入。很快,方法参数数量随着几乎所有东西的需要而增加。在某些类的几乎每个参数中看到单个布尔值是一种痛苦。我决定尝试一种静态方法。我想出了以下类结构:

不过这感觉很奇怪,大多数静态方法通常不读取内部变量,并且任何程序都可以轻松(有意或无意地)更改所有内容的变量。我知道我也可以使用单例,但有人告诉我这些最适合记录器和其他用途,而不是读取静态变量。我也不想公开布尔值,以便任何其他类可以编辑它。

那么这里最好的选择是什么?过度使用依赖注入、单例或我当前的系统

0 投票
1 回答
44 浏览

javascript - 为什么使用钩子时会出现此错误“只能在函数组件的主体内部调用钩子。”?

每次我从以下代码行运行 yarn start 时,都会const context = useContext(GlobalContext);遇到“错误:无效的钩子调用。只能在函数组件的主体内部调用钩子”。我该如何解决这个问题,这让我很精神。这是显示错误、依赖项和我的代码的屏幕截图 错误信息和反应依赖

这是我的 globalState 的代码,如果这是导致它的原因

因此,我对此进行了一些研究,显然我的 react 或 react-dom 可能不是最新的。Iv 尝试多次更新并运行 npm install。没有解决我的问题,我也几乎可以肯定我正确地调用了钩子。另一件事是我的全局状态设置正确,因为我可以在 react chrome 扩展中看到它。

0 投票
1 回答
37 浏览

javascript - 上下文 API 将状态提升到更高的组件

我试图让我的导航栏根据应用程序所在的页面进行更改,而不必为每个页面创建单独的导航组件。一旦用户进入新的“项目”页面,我希望导航栏发生变化。我这样做的方法是根据 url 参数有条件地呈现导航栏元素。一旦用户点击进入项目页面,就会有一个url参数如localhost/project/movie. 但是,导航栏组件无法访问match.params.projectId,只有项目页面组件可以访问它,因为它位于react-router的 Route 组件中。因此,我想创建一个存储 url 参数的全局状态,以便我可以在导航栏组件中使用它来有条件地呈现该组件的元素。

最高级别的 App 组件

较低级别的项目页面组件

我知道提供者必须在应用程序组件中环绕标题(导航栏)组件,但所需的状态值(match.params.projectId)只能在项目页面组件中找到。我想知道如何让提供者的值成为项目页面组件中的任何 url 参数。如果我的问题对任何人来说都太混乱了,我会尝试进一步澄清我的问题。谢谢

0 投票
3 回答
1115 浏览

javascript - 为什么使用 setState(...) 时 console.log 为空?

为什么当我 console.log(data) 是它记录数据时,但是当我尝试记录由 set state 设置的项目时,它是 null ?我不明白是不是因为在控制台记录之前没有时间更新?

0 投票
0 回答
1311 浏览

javascript - 如何在 React 中进行全局警报?

我正在尝试在我的 React 应用程序中创建一个全局警报,该警报显示在屏幕顶部并且每个组件都可以使用。我有在 App 中使用的组件 GlobalAlert。

当我尝试从路由中的任何组件传递 GlobalAlert 的 setAlert 函数时,就会出现问题。我尝试像这样使用 React Refs:

当我在NewIngredient中的后端操作完成后尝试使用 setAlert 时:

此外,如果我让它工作,它需要无意识的道具钻取组件结构。

如果可能的话,我宁愿不使用 Redux,因为我使用 Apollo 客户端来处理我所有应用程序的状态。我尝试使用 React Context API,但我发现无法为 NewIngredient 的提交函数传递 setAlert 函数。

有没有明确而简单的解决方案?

0 投票
1 回答
174 浏览

javascript - Redux 状态更改,但当我回到屏幕时组件不会重新渲染

我有两个屏幕,A 和 B。它们都使用相同的全局状态

使用这个:

对于屏幕 A 和:

对于屏幕 B。

在屏幕 AI 中单击一个按钮转到屏幕 B,我在其中更改profleInfos.Points全局状态,如下所示:

我使用this.props.dispatch(actionProfileInfos)代替mapdispatchtoprops(告诉我是否必须这样做,但我更喜欢这种方法)。
在此屏幕 (B) 中,我显示this.props.profleInfos.Points并且它工作正常(扫描后值更改)但是当我返回屏幕 A(后退按钮)时,this.props.profleInfos.Points它不会刷新。

PS。我在抽屉里有相同的值,如果我打开抽屉,我可以看到相同值的变化,可能是因为我“打开”了抽屉

0 投票
2 回答
104 浏览

reactjs - 数组减速器正在连接。不加总和。反应的上下文

零件:

由于 toFixed,总 const 引发错误

如果没有 toFixed,我的数字将连接为字符串。

我的数字如何被视为字符串??????

我尝试使用 Number 和 parseInt 将字符串转换为数字。它不起作用。

为什么数字连接为字符串?

这是全局状态:

0 投票
1 回答
537 浏览

reactjs - React Hooks - useState 用于全局状态管理

我知道现在有 Context API 应该用于全局应用程序状态管理。

但我想知道,使用 useState 管理应用程序的全局状态并传递给这样的道具有什么问题(或不是最佳的)吗?

然后在我的 ChildComponent 中,我可以轻松地访问状态并像这样更新它:

0 投票
0 回答
44 浏览

spring-cloud - 在每次测试方法后重置没有 EmbeddedKafka 的全局存储

我正在编写一个测试类,它有多种需要 Kafka 的方法。我的应用程序使用 kafka 流全局存储,并且每个测试都需要清除存储。如何在不重新启动 EmbeddedKafka 或为每个测试重置 EmbeddedKafka 的情况下清除每个测试的存储?

0 投票
1 回答
1286 浏览

python - ModuleNotFoundError:没有名为“global_state”的模块

对于我正在处理的小项目,我必须使用easygui带有import easygui. 我相信我正确安装了它,但现在我得到了错误:

ModuleNotFoundError:没有名为“global_state”的模块

据我了解,这与easygui. 我尝试卸载并重新安装easygui以获得可能的修复,但没有运气。

我正在通过 Ubuntu 安装 0.3.5 版。

错误的追溯: