javascript - React 中的静态方法

标签 javascript reactjs

我在浏览 React 文档时遇到了静态方法。我想知道在什么样的情况下它可能有用并且想不出任何。

在 React 中构建组件时,是否存在静态方法有用的特定场景?

最佳答案

defaultPropspropTypes 是 React 组件的静态成员,它们不会因每个实例而改变。参见 https://facebook.github.io/react/docs/reusable-components.html

静态属性的一个示例是能够跟踪创建了多少对象实例(不是特定于 React 的)。请注意,大多数时候,如果您正在修改状态,静态方法是一种代码味道。

var Contacts = React.createClass({
  statics: {
    instanceCount: 0
  },
  getInitialState: function() {
     Contacts.instanceCount++
     return {};
  },
  render: function() {
    return (<div > Hello {
      this.props.name
    } < /div>);
  }
});
console.log(Contacts.instanceCount) // 0
ReactDOM.render( < Hello name = "World" / > ,
  document.getElementById('container')
);
console.log(Contacts.instanceCount) // 1

另一个例子是一种存储常量的方法。

var Contacts = React.createClass({
  statics: {
    MAX_VALUE:100
  },
  render: function() {
    return (<div > Hello {
      this.props.name
    } < /div>);
  }
});

if (someValue > Contacts.MAX_VALUE) {

}

关于javascript - React 中的静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36333996/

相关文章:

javascript - jQuery+AJAX 响应头

javascript - 如何创建 html/javascript 文件来播放我选择的 swf 文件?

javascript - React-Select V2.0 与 Next.JS

javascript - 将外部脚本导入 React 组件

javascript - 如何修复无法在组件上调用 setState,但它可能会在使用 React Js 的应用程序中出现错误

javascript - 如何在特定元素的上下文中在 Jest 测试中进行查询?

javascript - 向复选框添加内容

javascript - 处理 jQuery deferred.done 被调用,即使请求被中止?

javascript - 在基于 ajax 的网站的动态加载内容上运行 javascript

reactjs - rn-fetch-blob 错误 : RNFetchBlob. fetchBlobForm 未能创建请求正文