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应该是可行的。在这种情况下,我如何使用钩子读取值?我为您更新了我的答案,其中包含一个示例。你需要弄清楚如何使它适合你的需要。