gpt4 book ai didi

javascript - 全局导入的变量未定义

转载 作者:行者123 更新时间:2023-11-30 09:11:35 25 4
gpt4 key购买 nike

我的 FinalVariables.js 中有三个变量,如下所示:

var finalTaskName = 'abc'
var finalQuantityTaskExecuted = 0
var finalQuantityTaskCompletion = 100

export {finalTaskName, finalQuantityTaskExecuted, finalQuantityTaskCompletion}

在另一个文件中,我使用以下行导入它们:

import {finalTaskName,finalQuantityTaskExecuted,finalQuantityTaskCompletion} from './FinalVariables'

然而,当我尝试在另一个文件中使用上述三个变量中的任何一个时,它们总是未定义。是否有一个原因?

我是 Javascript 和 React 的新手,如有任何帮助,我将不胜感激!谢谢!

-------------------------------------------- - - - - - - - - - - - - - - - - - - - - - - 更新 - - - ---------------------------------------------- ------

我导入的变量如下:

import * as finalVariables from './FinalVariables' 

当我做一个console.log(finalVariables.finalTask​​Name)

我能够打印出正确的值,但是当我尝试为其分配一个值时:

finalVariables.finalTaskName = this.props.item[0].particulars 

我收到以下错误:

Cannot set property finalTaskName of # which has only a getter

=============================更新================= =====================

我现在可以正确更新这些值,但是在我导入这些值的主类 TasksInsert.jsx 中,我在渲染函数中有这个,

<p>{finalVariables.finalTaskName}</p> 
<p>{finalVariables.finalQuantityTaskExecuted}</p>
<p>{finalVariables.finalQuantityTaskCompletion}</p>

为什么这些值没有反射(reflect)最近的变化?我的状态构造函数如下所示:

this.setState({ finalVariables })

-------------------------------------------- - - - - - - - - - - - 更新 - - - - - - - - - - - - - - ----------

我对名为 BOQSuggestions 的全局数组采用了类似的方法,我将数据推送到该数组并且它起作用了,即对它的更改会在全局范围内反射(reflect)出来。

另外,这是我唯一需要共享数据的地方,这就是我不想使用 Redux 的原因。

有人可以建议代码来解决这个问题吗?我仍然被困在这里并且是 Javascript 的新手。

最佳答案

模块导出在设计上是只读的。如果你想要一些全局可变状态,你应该通过从模块中导出一个可变对象来实现:

// final-vars.js

export default {
finalTaskName: 'abc',
finalQuantityTaskExecuted: 0,
finalQuantityTaskCompletion: 100
};
// other.js

import finalVariables from './final-vars';

// ...

finalVariables.finalTaskName = this.props.item[0].particulars // Allowed

关于javascript - 全局导入的变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58402334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com