当我像这样包装v2
时,我陷入了一个react-admin v3
到layout
的升级,有两个奇怪的问题:
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
的值,我们看到permissions
为undefined
,而references
不为空:
此屏幕快照显示了当我们尝试从中读取内容时的内容,我们可以看到references
现在是一个空对象:
我们的目标是:
pages
对象,该对象取决于用户对应用程序的权限,因此我们不会在应用程序中的任何地方编写硬链接。最近发生了哪些变化,可能导致v3中出现这种奇怪的行为?
当我像这样包装布局时,我陷入了将v2升级到v3的React-admin v2中,遇到两个奇怪的问题:composeLayout(Layout){const ComponentLayout =({references,dispatch,... props})...