reactjs - React Context API 全局状态不会在反应中跨不同路由更新
问题描述
当我从 Page1 增加状态时,它会为 Page1 更新。但是当我转到第2页时,状态再次变为0。我没有从第1页获得更新的状态。有什么方法可以跨路由创建全局状态?
上下文.js
import React, { useState } from "react";
export const Context = React.createContext();
export const ContextProvider = ({ children }) => {
const [state, setstate] = useState(0);
return (
<Context.Provider value={{ state, setstate }}>{children}</Context.Provider>
);
};
Page1.js
const Page1 = () => {
const { state, setstate } = useContext(Context);
console.log("Page1: ", state);
return (
<div>
<h1>PAGE 1</h1>
{state}
<button onClick={() => setstate(state + 1)}>INC</button>
</div>
);
};
Page2.js
const Page2 = () => {
const { state, setstate } = useContext(Context);
return (
<div>
<h1>PAGE 2</h1>
{state}
<button onClick={() => setstate(state + 1)}>INC</button>
</div>
);
};
解决方案
推荐阅读
- python - Imaplib 转发来自 gmail 的带有附件的邮件(Python)
- vb.net - PictureBox 拖放到 MS Word
- javascript - 删除元素 vanillaJs
- python - Seaborn 折线图“左后”的问题
- javascript - 检查谷歌表格/谷歌脚本中的日期是否相等
- google-apps-script - 更新 Google 网上论坛发帖权限
- java - 哪种 MIME 类型用于设置 firefox Preference 以自动下载 .ebc 文件?
- r - 就R中的故障步骤而言,For循环与Sapply
- android - 如何在改造时传递带有数组的json对象
- javascript - 从mailto链接中的字段更改?