在 React 中,当我们使用 Mobx 进行状态管理时,可以通过创建一个共享的 store 来存储和传递数据。如果你在前一页传递的值在新窗口中消失了,可能是因为在新窗口中重新加载了应用,导致 store 被重置。

为了解决这个问题,你可以考虑使用持久化存储来保存数据,或者使用 React 的路由来传递数据。下面是两种解决方案的示例:

  1. 使用 localStorage 进行持久化存储: 在前一页传递的值时,将其存储在 localStorage 中。在新窗口打开时,检查 localStorage 中是否有存储的值,并将其重新加载到 store 中。
// 前一页
localStorage.setItem('myValue', value);

// 新窗口
const myValue = localStorage.getItem('myValue');
store.setValue(myValue);
  1. 使用 React 的路由传递数据: 在前一页传递的值时,将其作为 URL 参数传递给新窗口的路由。在新窗口中,通过获取 URL 参数来获取传递的值,并将其加载到 store 中。
// 前一页
import { Link } from 'react-router-dom';

<Link to={`/new-page?value=${value}`}>打开新窗口</Link>

// 新窗口
import { useLocation } from 'react-router-dom';

const location = useLocation();
const searchParams = new URLSearchParams(location.search);
const myValue = searchParams.get('value');
store.setValue(myValue);

通过使用上述方法,你应该能够在新窗口中正确地传递和加载值。请根据你的具体情况选择适合你的解决方案。

React Mobx 传值:解决新窗口打开值消失的问题

原文地址: https://www.cveoy.top/t/topic/qDvR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录