2016-01-20 11 views
5

में सजावट के साथ अपरिभाषित किया गया है मेरे पास एक सजावट वाला ईएस 6 कक्षा है। यह एक स्थिर विधि foo है। हालांकि जब मैं स्थैतिक विधि तक पहुंचने का प्रयास करता हूं, तो यह अनिर्धारित होता है।ईएस 6 कक्षाओं में स्टेटिक विधि को रेफज

@withStyles(styles) 
class MyComponent extends Component { 
    static foo(){ 
     return "FOO"; 
    } 
    render(){ 
     var x = MyComponent.foo; // x=undefined 
    } 
} 

जब मैं सजावटी को हटाता हूं तो मैं स्थैतिक विधि तक पहुंच सकता हूं। यह अब अपरिभाषित नहीं है।

class MyComponent extends Component { 
    static foo(){ 
     return "FOO"; 
    } 
    render(){ 
     var x = MyComponent.foo; // x=foo() 
    } 
} 

क्या इस मुद्दे के लिए कोई समाधान है?

+0

सजावटी ES6/ES2015 का हिस्सा नहीं हैं। यह संभवतः आपके द्वारा उपयोग किए जा रहे ट्रांस्फरर में एक बग है (बेबेल?)। –

+0

सजावटी क्या करता है? या तो आपका ट्रांसलेटर या सजावटी कार्यान्वयन बग्गी लगता है। – Bergi

+0

यह [SO उत्तर] (http://stackoverflow.com/questions/34766822/class-decorators-in-es7?rq=1) बताता है कि स्टाइल सजावट के साथ कैसे काम करता है। – GunnerFan

उत्तर

2

आप es6 साथ babel का उपयोग कर रहे हैं, यह है कि (es5 करने के लिए) की तरह transpiled जा सकता है:

var MyComponent = (function() { 
    function MyComponent() { 
    _classCallCheck(this, _MyComponent); 
    } 

    _createClass(MyComponent, null, [{ 
    key: 'foo', 
    value: function foo() { 
     return "FOO"; 
    } 
    }]); 

    var _MyComponent = MyComponent; 
    Foo = withStyles(MyComponent) || MyComponent; 
    return MyComponent; 
})(); 

तो अपनी समस्या यह है कि withStyles(MyComponent) एक और समारोह जो स्पष्ट रूप से स्थिर तरीकों आप नहीं है वापस आ जाएगी है मूल वर्ग के लिए निर्दिष्ट।

+0

समझ गया। क्या आपके पास इसके आसपास है? – GunnerFan

+0

यह [SO उत्तर] (http://stackoverflow.com/questions/34766822/class-decorators-in-es7?rq=1) बताता है कि स्टाइल सजावट के साथ कैसे काम करता है। – GunnerFan

संबंधित मुद्दे