【发布时间】:2019-05-17 23:15:19
【问题描述】:
如何将条件传递给<Can />组件,该组件与能力对象中的条件匹配。
AbilityBuilder 向我的应用公开权限:
AbilityBuilder.define((can, cannot) => {
cannot('delete', 'user', { role: 2 }) // <- 2
});
应该呈现段落的组件。
<Can I="delete" a="user" of={{ role: 1 }}>
<p>Should be visible</p>
</Can>
如何传递对象而不是类的实例?我还没有找到任何相关信息:(
【问题讨论】:
-
不使用 JSX 语法直接传入即可。如果你想在组件中渲染它,请使用
React.createElement -
@Andrew 你能举个例子吗?
-
我收回了。刚刚查看了 CASL 的文档。我认为这是一个通用的 React 问题。看起来您正在尝试做一些 API 无法处理的事情
-
据我所知,它期望像对象一样。 CASL 的职责是识别一个对象并将对象的值与定义的条件进行比较?我错了吗?我认为 lib 不应该关心它是类还是对象的实例,它应该以相同的方式处理。