Javascript 从函数中导出变量

Javascript 从函数中导出变量,javascript,reactjs,Javascript,Reactjs,如何从主题组件导出isDark?或者可以从另一个文件中查询isDark,而不导出它吗 Toggle.js: import React,{Component,useffect}来自“React”; 从“react Particles js”导入{Particles as ReactParticles}; 从“../hooks/PersistentState”导入usePersistentState; 常量主题=()=>{ const[isDark,setIsDark]=usePersistentS

如何从主题组件导出
isDark
?或者可以从另一个文件中查询
isDark
,而不导出它吗

Toggle.js

import React,{Component,useffect}来自“React”;
从“react Particles js”导入{Particles as ReactParticles};
从“../hooks/PersistentState”导入usePersistentState;
常量主题=()=>{
const[isDark,setIsDark]=usePersistentState('theme',true);//默认为暗模式
useffect(()=>{
if(isDark){
document.documentElement.classList.add('other');
}否则{
document.documentElement.classList.remove('other');
}
});
返回(
setIsDark(event.target.checked)}/>
)
}
类切换扩展组件{
render(){
返回(
);
}
}
导出默认切换;
我试图使用
isDark
Background.js

import React,{Component}来自'React';

使用钩子从“/Toggle”导入{isDark}。将其称为
useTheme
,并让它返回读取的主题值。还可以考虑使用上下文,以便可以在上下文提供程序中缓存主题值。


这就是一个例子。您可以看到,我创建了一个上下文值,它可以保存一个主题实例,稍后可以通过useTheme注入该实例。您可以向上下文对象添加任何需要的内容,并允许钩子有选择地将这些值导出到使用者。这很好,因为钩子可以接受大量详细的值和设置器,并为消费者提供更符合人体工程学的api。这就是react-redux和react-router的工作原理。

它不是react-ish,但您可以分配一个外部变量并调用
setIsDark
,然后导出该变量。您希望在其他地方使用
isDark
?在作为
切换
组件父组件的组件中,它用于
参数
,在哪里使用
参数
?如果是在另一个组件中,可能有一种方法可以做到这一点,但如果不是,则总是有另一种方法我编辑了文章以添加更多的上下文
Background.js
不是
Toggle.js
的父级或子级。它们都位于项目中同一文件夹中的同一级别。如果它们是React兄弟(或者甚至在同一棵树中的任何位置),那么通过React应该是可行的。在这种情况下,我如何使用钩子读取值?我为您更新了我的答案,其中包含一个示例。你需要弄清楚如何使它适合你的需要。