Javascript 使用React从多个文件调用变量?

Javascript 使用React从多个文件调用变量?,javascript,reactjs,Javascript,Reactjs,我的代码是这样安排的: main.jsx var React = require('react'); var ReactDOM = require('react-dom'); var Console = require('./console.jsx'); var Dashboard = require('./dashboard.jsx'); var datastored = new Dexie('Notes'); datastored.version(1).stores({entries:'+

我的代码是这样安排的:

main.jsx

var React = require('react');
var ReactDOM = require('react-dom');
var Console = require('./console.jsx');
var Dashboard = require('./dashboard.jsx');

var datastored = new Dexie('Notes');
datastored.version(1).stores({entries:'++id, title, entry' });
datastored.open().catch(function(err){alert("Could not open database:"+err)});
sendthru:function(){
     var newInput = {
     title: this.inputTitle.value,
     entry: this.inputEntry.value    
     }; 
     datastored.entries.add(newInput).then(()=>this.runcheck());
     this.inputTitle.value = '';
     this.inputEntry.value = '';    
},    
这个
main.jsx
通过使用IndexDB包装的
datastored
变量启动我的数据库。现在,我想从其他文件(如
console.jsx
dashboard.jsx
)调用
datastored
变量

在我的特定实例中,我在
中有一个
。在
内部,我有这个功能

addnote.jsx

var React = require('react');
var ReactDOM = require('react-dom');
var Console = require('./console.jsx');
var Dashboard = require('./dashboard.jsx');

var datastored = new Dexie('Notes');
datastored.version(1).stores({entries:'++id, title, entry' });
datastored.open().catch(function(err){alert("Could not open database:"+err)});
sendthru:function(){
     var newInput = {
     title: this.inputTitle.value,
     entry: this.inputEntry.value    
     }; 
     datastored.entries.add(newInput).then(()=>this.runcheck());
     this.inputTitle.value = '';
     this.inputEntry.value = '';    
},    

但是,当启动
sendthru
时,我的控制台错误表明未定义
数据存储。因此,我想知道如何使我的整个应用程序能够调用数据存储的
变量

您可以将数据存储在另一个模块中。模块是单例的,因此您可以创建自己的文件(比如,
storage.js
),并在其中导出一个对象,其中包含您希望其他代码可以使用的字段。然后,当您
需要('./storage')
时,您可以在其他任何地方访问相同的数据。

您可以将数据存储在另一个模块中。模块是单例的,因此您可以创建自己的文件(比如,
storage.js
),并在其中导出一个对象,其中包含您希望其他代码可以使用的字段。然后,当您
需要('./storage')
时,您将可以在其他任何地方访问相同的数据。

因此,我假设在
main.jsx
上,看起来像
var datastored=require('./storage.js')
?然后在storage.js上,看起来像
module.exports=new-Dexie('Notes')?如果您发现需要更多的数据,那么您当然可以这样开始,并对其进行更改。我假设
main.jsx
上的数据看起来像
var datastored=require('./storage.js')
?然后在storage.js上,看起来像
module.exports=new-Dexie('Notes')?如果您发现需要更多数据,当然可以这样开始并更改它