繁体   English   中英

具有自定义属性的React.createClass

[英]React.createClass with custom properties

如何对待React.createClass()自定义javascript属性?

这是示例:

var RouterView = React.createClass({
  mixins: [Morearty.Mixin],
  isAuthorized: false,      // should it be part of state ??
  isVerified: false,        // should it be part of state ??
  bindToAuthorization: function() {
    if(/* blah-blah-blah */) {
      this.isAuthorized = true; 
    }
  },
  render: ...
});

看起来.isAuthorized.isVerified语义上应该像组件的状态一样,但这只是.createClass()规范的属性。

.isAuthorized.isVerified如何行动? 它像static吗? 在React的文档中找不到关于此的任何信息。

这取决于授权发生的位置。

如果确定授权的逻辑发生在子组件中-并且仅在子组件中-则它将处于子组件状态。 这意味着isAuthorizedisVerified不会是props,它们会在您的子组件中声明。 并且bindToAuthorization将由组件本身而不是其父级定义。

不过,更有可能的是,您希望将授权逻辑放在组件层次结构中的更高位置,或者将其完全排除在逻辑之外(如果使用Flux)。

请记住,低阶组件通常不需要任何状态。 父组件可以简单地在不同道具中重新渲染它们。 这使您bindToAuthorization 父级不需要将授权逻辑委派给子级组件。 当相关属性更改时,它只是重新渲染它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM