Javascript Can';t在react native中修改全局变量 问题
我希望在react native中有一个全局计数器,以显示用户在我正在创建的应用程序中有多少通知 我在一个名为global.js的文件中创建了一个全局变量:Javascript Can';t在react native中修改全局变量 问题,javascript,reactjs,react-native,global-variables,Javascript,Reactjs,React Native,Global Variables,我希望在react native中有一个全局计数器,以显示用户在我正在创建的应用程序中有多少通知 我在一个名为global.js的文件中创建了一个全局变量: var notifNum = 0; global.n = notifNum; 然后在我的代码中,我使用 import './global.js' 然后稍后我尝试用 global.n = notifNum; Notif num是用户在函数中定义的通知数。问题是global.n保持为0,并且根本不改变 如何编辑global.n变
var notifNum = 0;
global.n = notifNum;
然后在我的代码中,我使用
import './global.js'
然后稍后我尝试用
global.n = notifNum;
Notif num是用户在函数中定义的通知数。问题是global.n
保持为0,并且根本不改变
如何编辑global.n变量?这与React Native关系不大,与javascript作为一种语言的工作方式关系更大 简而言之,您必须导出希望在其他文件中使用的内容 Global.js 我们已经告诉JS引擎我们想要在其他文件中导入什么。将其分配给和对象并导出对象不是必需的,但允许更干净的导入/导出 Component.js 我们解构导出的对象,现在可以修改/使用global.js文件中的值 耐人寻味 这不是一个理想的解决方案,因为它不是两种方式。增加
global.js
文件中的计数不会更新component.js
中的值
这是因为React需要更新其状态,以启动组件的重新渲染
此外,这不会通过应用程序重新加载而持久,我相信您可能希望使用诸如通知之类的东西
其他解决方案
状态
管理计数Redux
或MobX
有一种方法可以修改global.foo变量 不工作
global.foo = 'foo'; //this cant be changed
global.foo = 'foofoo';
console.log(global.foo); //foo
行得通
global.foo = ['foo']; //this can be changed
global.foo[0] = 'foofoo';
console.log(global.foo[0]); //foofoo
如何使用增量和计数器?工人增薪;给我一个错误,说找不到变量worker。因为我们在导入时从
worker
对象解构了属性,所以不需要使用worker.counter
引用它。相反,我们可以这样使用,increment()
或counter
我知道这个问题很久以前就被问过了,但我在使用计数器时遇到了问题。它将把.log()控制台设置为1,但当我实际尝试使用它时,它是0。同样,创建返回计数器的函数也不起作用。请尝试将计数器+++
更改为计数器+1
@Giise你确定这会达到预期的结果吗?是的,global.foo被分配了一个数组,你不能改变它,但你可以改变数组中的内容array@Torped这句话说得太好了
global.foo = 'foo'; //this cant be changed
global.foo = 'foofoo';
console.log(global.foo); //foo
global.foo = ['foo']; //this can be changed
global.foo[0] = 'foofoo';
console.log(global.foo[0]); //foofoo