nif*_*fty 46 ecmascript-6 reactjs
静态对象是否适用于React中的ES6类?
class SomeComponent extends React.Component {
render() {
// ...
}
}
React.statics = {
someMethod: function() {
//...
}
};
Run Code Online (Sandbox Code Playgroud)
像上面的东西给我未定义的方法someMethod,当我做SomeComponent.someMethod()
Fel*_*ing 61
statics只适用于React.createClass.只需将方法声明为静态类方法:
class SomeComponent extends React.Component {
static someMethod() {
//...
}
render() {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
关于
React.statics = { ... }
Run Code Online (Sandbox Code Playgroud)
您实际上是statics在React对象上创建属性.该属性不会神奇地扩展您的组件.
Jon*_*ang 24
虽然statics只适用于React.createClass,但您仍然可以使用ES6表示法编写静态方法.如果您使用的是ES7,那么您也可以编写静态属性.
您可以这样在ES6 +类中编写静态:
class Component extends React.Component {
static propTypes = {
...
}
static someMethod(){
}
}
Run Code Online (Sandbox Code Playgroud)
或者像这样的课外:
class Component extends React.Component {
....
}
Component.propTypes = {...}
Component.someMethod = function(){....}
Run Code Online (Sandbox Code Playgroud)
如果你想像前者一样写它,那么你必须设置stage: 0Babel(自实验以来).
| 归档时间: |
|
| 查看次数: |
48191 次 |
| 最近记录: |