Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将react组件中的一些值存储在broswer范围中?_Javascript_Reactjs_Typescript - Fatal编程技术网

Javascript 如何将react组件中的一些值存储在broswer范围中?

Javascript 如何将react组件中的一些值存储在broswer范围中?,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,我不知道我是否使用了正确的术语,但这正是我试图做的。我正在从我的一个API获取一些头部细节,其中包括承载令牌和其他细节。这些值将由大多数其他react组件使用。有没有一种方法可以在不使用Redux或将数据传递给所有单个组件的情况下全局存储它 下面是一个代码片段,它从React组件的位置状态获取值。我需要在不使用redux的情况下全局存储这些值 if(response.httpStatus==200){ setIsLoggedIn(真); //setIsAdmin(response.user.i

我不知道我是否使用了正确的术语,但这正是我试图做的。我正在从我的一个API获取一些头部细节,其中包括承载令牌和其他细节。这些值将由大多数其他react组件使用。有没有一种方法可以在不使用Redux或将数据传递给所有单个组件的情况下全局存储它

下面是一个代码片段,它从React组件的位置状态获取值。我需要在不使用redux的情况下全局存储这些值

if(response.httpStatus==200){
setIsLoggedIn(真);
//setIsAdmin(response.user.isAdmin!);
setEmailAddress(inputEmailAddress);
history.push(“/console”{
令牌:response.token,
companyID:response.user.companyID,
firstName:response.user.firstName,
lastName:response.user.lastName,
emailAddress:response.user.emailAddress

}//您可以使用如下模式:

将数据存储到某个父状态,并使用
React.createContext
React.useContext

对于除少数组件以外的更复杂的应用程序,建议您使用Redux。使用
@reduxjs/toolkit
,因为这会减少Redux代码的冗余,并且官方建议为大多数应用程序编写Redux代码

函数mockApi(){
返回新承诺((解决、拒绝)=>{
setTimeout(()=>解析(“API数据”),1000;
});
}
const GlobalContext=React.createContext(null);
函数App(){
log(“渲染应用程序…”);
const[apiData,setApiData]=React.useState(null);
React.useffect(()=>{
mockApi()。然后((数据)=>{
setApiData(数据);
});
},[]);
返回(
);
}
函数SomeComponent(){
const apiData=React.useContext(GlobalContext);
返回(
apiData?
SomeComponent:{apiData}
:SomeComponent:正在加载数据。。。
);
}
ReactDOM.render(,document.getElementById(“根”);

使用,将帮助您学习和理解la状态管理

例如:


上下文对小项目来说很好,但Redux表现更好。

很抱歉没有提及我使用的是Ionic框架。我使用了全局存储值。

如果Redux的学习曲线太陡,那么我建议使用React将数据存储为“应用程序状态”任何需要它的组件都可以简单地访问上下文。巧合的是,react-redux是使用上下文API构建的,并应用了redux模式。或者,您可以将所有内容持久化到本地存储并直接访问,但我不建议您这样做,因为您需要更确定的状态更新方法。请将所有状态保留在这些属性可以存储在localStorage中,如果您使用代码示例而不仅仅是链接来编辑答案,那么这将是一个更好的答案。