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