如何在新的 nextJs 项目中配置 mobX?

问题描述 投票:0回答:1

大家好,我是 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。

reactjs next.js mobx mobx-react-lite
1个回答
0
投票

嘿希望你做得很好,我也面临着同样的问题,你有任何解决方案吗?如果是的话,请告诉我,谢谢,就我而言,它更新了商店,但不知何故它没有将更新的内容渲染到 UI 我还用观察者包装了我的组件

© www.soinside.com 2019 - 2024. All rights reserved.