javascript – React js – 禁用mixin中组件的渲染

我正在尝试开发一个React mixin来在渲染组件之前检查用户访问级别.

如果用户没有查看组件的权限,我想禁用组件的呈现.
我一直在寻找建立起来的东西来处理这个但却一无所获,所以我做到了:

var AuthentLevelMixin = {
    componentWillMount: function() {
        if(!Auth.check()) {
            // Disable component render method
            this.render = function () {
                return false;
            }
        }
    }
}

它按预期工作,但我觉得这是“肮脏的方式”.

所以我的问题是:与此片段相同的“反应方法”是什么?

如果您想在mixin中处理授权而不向组件添加逻辑,那么您正在以正确的方式执行此操作.但是:实现这个mixin的每个组件都应该知道这个mixin中发生了什么.如果你期望的结果是,没有任何东西被渲染,那么你对你正在做的事情是完全正确的.因此,如果你的方式导致简单,那就是React-Way.在我的观点中就是这种情况.

在componentWillMount生命周期事件中,您将在渲染之前捕获瞬间 – 这是防止渲染的好时机.所以我真的没有看到任何反对你的代码.

编辑:

定义的方法:“反应方式”

一旦你有相同的输入,每次你的代码变得可预测时产生相同的输出.您的代码可以预测,您可以实现简单性.这些是Pete Hunt用来描述React意图的术语.因此,如果你保持可预测性并且在结果上实现简单,你就是以反应的方式做到这一点.

在上述mixin的情况下,这些规则都适用,因此我在上面提供的定义中采用了“反应方式”.

相关文章
相关标签/搜索