大家好,我是 nextjs 的新手,目前正在开发一个项目,我必须使用 mobX 作为状态管理工具,我已将其配置在一个虚拟项目中,以解决它,并且我已经通过了一个特定的商店(类)在单个组件中并仅在其中使用它。
但是现在我已经将它集成到我的主项目中,我必须在各个组件中获取该存储(类),那么我如何在每个组件中获取它,就好像我尝试在我需要它的任何地方导入它一样,它正在创建该类的一个新实例,因此我存储的数据每次都会被我的初始状态替换。我应该做什么,因为我不知道接下来的组件层次结构,所以我无法在顶层仅创建一次 store(类)实例,就像我们在 CRA 中的 App.js 中所做的那样。
我尝试在应用程序文件夹中的根layout.js 文件上使用包装器来使用全局变量获取实例。
这是我的wrapper.js 文件。
import AuthStore from "./auth-store";
const MobxProvider = ({ children }) => {
const authData = new AuthStore();
return <div>{children}</div>;
};
export default MobxProvider;
这是我的根(应用程序文件夹)layout.js 文件。
const RootLayout = ({ children }) => {
return (
<html lang="en">
<MobxProvider>
<body className={inter.className}>{children}</body>
</MobxProvider>
</html>
);
};
export default RootLayout;
但是我的子组件没有获取 authData。
嘿希望你做得很好,我也面临着同样的问题,你有任何解决方案吗?如果是的话,请告诉我,谢谢,就我而言,它更新了商店,但不知何故它没有将更新的内容渲染到 UI 我还用观察者包装了我的组件