作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含多个组件的 React-Redux-KoaJs 应用程序。我的用户角色也很少。现在我想仅向特定角色显示一些按钮、表格和 div,并对其他角色隐藏这些按钮、表格和 div。请记住,我不想隐藏整个组件,而只是隐藏组件的一部分。谁能帮我?提前致谢。
最佳答案
您可以按照 @Eudald Arranz 的建议检查每个组件中的角色或权限。或者您可以编写一个组件来为您检查权限。例如:
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
const ShowForPermissionComponent = (props) => {
const couldShow = props.userPermissions.includes(props.permission);
return couldShow ? props.children : null;
};
ShowForPermissionComponent.propTypes = {
permission: PropTypes.string.isRequired,
userPermissions: PropTypes.array.isRequired
};
const mapStateToProps = state => ({
userPermissions: state.user.permission //<--- here you will get permissions for your user from Redux store
});
export const ShowForPermission = connect(mapStateToProps)(ShowForPermissionComponent);
然后你可以像这样使用这个组件:
import React from 'react';
import { ShowForPermission } from './ShowForPermission';
cons MyComponent = props => {
return (
<div>
<ShowForPermission permission="DELETE">
<button>Delete</button>
</ShowForPermission>
</div>
);
}
关于reactjs - 如何在React Redux应用程序中实现基于角色的限制/权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56004504/
我是一名优秀的程序员,十分优秀!