[英]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的文档中找不到关于此的任何信息。
这取决于授权发生的位置。
如果确定授权的逻辑发生在子组件中-并且仅在子组件中-则它将处于子组件状态。 这意味着isAuthorized
, isVerified
不会是props,它们会在您的子组件中声明。 并且bindToAuthorization
将由组件本身而不是其父级定义。
不过,更有可能的是,您希望将授权逻辑放在组件层次结构中的更高位置,或者将其完全排除在逻辑之外(如果使用Flux)。
请记住,低阶组件通常不需要任何状态。 父组件可以简单地在不同道具中重新渲染它们。 这使您bindToAuthorization
。 父级不需要将授权逻辑委派给子级组件。 当相关属性更改时,它只是重新渲染它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.