Javascript 导出函数中的全局变量不可访问

Javascript 导出函数中的全局变量不可访问,javascript,reactjs,Javascript,Reactjs,我想更新一个变量,以防用户在web界面(ReactJS)中手动设置语言。但是,我无法在导出函数中访问该变量 我已经尝试使用“export”的不同组合(也用于变量),但没有任何效果 文件:index.js export function getLanguage() { console.log(languageManuallySelected); } 预期结果:错误 实际结果:未定义问题是变量languageManuallySelected未在导出的函数范围内定义。要解决此问题,您需要在

我想更新一个变量,以防用户在web界面(ReactJS)中手动设置语言。但是,我无法在导出函数中访问该变量

我已经尝试使用“export”的不同组合(也用于变量),但没有任何效果

文件:index.js


export function getLanguage() {

  console.log(languageManuallySelected);

}
预期结果:错误


实际结果:未定义问题是变量
languageManuallySelected
未在导出的函数范围内定义。要解决此问题,您需要在导出封闭函数时,在其作用域中选择
languageManuallySelected
。一个非常通用的示例如下所示

export function someFunction () {
    languageManuallySelected = false;
    function getLanguage() {
        console.log(languageManuallySelected);
    }
}
叫它

import someFunction from './someFile';
someFunction.getLanguage(); 

应该打印“false”

在你的问题中没有足够的上下文,但我会尝试猜测

也许您需要将
窗口
作为全局范围来访问变量:

export function getLanguage() {

    console.log(window.languageManuallySelected);

}

唯一可以假定的是错误的路径名

或者,您在导入时并不是简单地分解func

乍一看,我只能这样假设,因为你还没有提供相关的代码

一个活生生的例子是

文件夹:services/utils

export const getValueArray = data => data.map(item => item.value)
现在您应该导入到所需的文件

import { getValueArray } from '--correct_path_name'

欢迎来到堆栈溢出。据我所知,这不是一个
全局导出
,而只是一个
导出
。您需要从'file.js'导入{getLanguage}您确定全局变量
languageManuallySelected
已初始化为
false
?您是否使用类似webpack的工具一起编译代码?全局变量在这一点上并不真正存在,除非您手动指定
window.languageManuallySelected
编辑问题,将整个文件
inedex.js
放入显示vard声明的文件对不起,我发现我没有写入实际属性。因此,整个示例将是(全部在index.js文件中,因此无需导入)<代码>var languageManuallySelected=false;导出函数getLanguage(){console.log(languageManuallySelected);}我认为@Peter Cheng的回答是正确的。非常感谢。