Javascript 使用React从多个文件调用变量?
我的代码是这样安排的: main.jsxJavascript 使用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:'+
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')代码>?如果您发现需要更多数据,当然可以这样开始并更改它