react-admin v2升级到v3,权限始终为空,上下文不一致

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

当我像这样包装v2时,我陷入了一个react-admin v3layout的升级,有两个奇怪的问题:

  composeLayout(Layout) {
    const ComponentLayout = ({ references, dispatch, ...props }) => ( // eslint-disable-line no-unused-vars
      <WithPermissions
        // eslint-disable-next-line no-unused-vars
        render={({ permissions }) => (
          <AppContextProvider
            permissions={permissions}
            references={references} 
          >
            <Layout {...props} />
          </AppContextProvider>
        )}
      />
    );

    const mapStateToProps = (state) => {
      const references = {};
      Object.keys(state.admin.resources).forEach((name) => {
        set(references, `${camelizePath(name)}.name`, name);
      });
      return { references };
    };
    return connect(mapStateToProps)(ComponentLayout);
  }
  • [references已正确设置,但随后从上下文中读取对象时始终为空对象
  • [permissions始终为undefined,而authProvider.getPermissions()始终返回权限的非空数组。
  • 这是调试器中的视图,它显示了传递给AppContextProvider的值,我们看到permissionsundefined,而references不为空:

enter image description here

此屏幕快照显示了当我们尝试从中读取内容时的内容,我们可以看到references现在是一个空对象:

enter image description here在react-admin v2中运行正常。

我们的目标是:

  • 使用来自引用对象的引用,而不是在我们的应用程序各处都编写硬引用。
  • 创建一个pages对象,该对象取决于用户对应用程序的权限,因此我们不会在应用程序中的任何地方编写硬链接。
  • 最近发生了哪些变化,可能导致v3中出现这种奇怪的行为?

当我像这样包装布局时,我陷入了将v2升级到v3的React-admin v2中,遇到两个奇怪的问题:composeLayout(Layout){const ComponentLayout =({references,dispatch,... props})...

javascript reactjs react-admin
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.