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

时间:2019-05-23 20:22:43

标签: javascript reactjs

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

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

文件:index.js


export function getLanguage() {

  console.log(languageManuallySelected);

}

预期结果:false

实际结果:未定义

3 个答案:

答案 0 :(得分:1)

问题在于,变量languageManuallySelected在您导出的函数范围内未定义。要解决此问题,您需要导出范围为languageManuallySelected的封闭函数。一个非常普通的例子看起来像这样

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

称呼它

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

应打印'false'

答案 1 :(得分:0)

您的问题没有足够的背景信息,但我会尽力猜测。

也许您需要引用window作为访问变量的全局作用域:

export function getLanguage() {

    console.log(window.languageManuallySelected);

}

答案 2 :(得分:0)

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

或者,您导入时并不仅仅是破坏func。

乍一看,因为您没有提供相关代码,所以我只能被假定为这样。

一个生动的例子,

文件夹:服务/实用程序

export const getValueArray = data => data.map(item => item.value)

现在您应该导入到所需的文件

import { getValueArray } from '--correct_path_name'