2016-09-30 15 views
6

में कभी-कभी आप एक स्टेटलेस घटक से एक स्टेटस घटक से जाना चाहते हैं, और मैं सोच रहा हूं कि इंटेलिजे मेरे लिए ऐसा करने का कोई तरीका है (प्लगइन बनाने के बिना)।जेएसएक्स से त्वरित रूप से जा रहा है जेएसएक्स पर स्टेटलेस घटक प्रतिक्रिया करें IntelliJ

उदाहरण के लिए, जाने से:

const Stateless = ({ propsDestructuring }) => { 
    console.log('Some logic'); 

    return (
    <div>Some JSX</div> 
); 
}; 

रहे हैं:

class Stateful extends Component { 
    render() { 
    const { 
     propsDestructuring 
    } = this.props; 

    console.log('Some logic'); 

    return (
     <div>Some JSX</div> 
    ); 
    } 
} 

वैकल्पिक रूप से "एरो शरीर शैली" स्पष्ट वापसी के लिए जा रहा से भी उपयोगी होगा, उदा से

const Stateless = ({ propsDestructuring }) => (
    <div>Some JSX</div> 
); 

के लिए जा रहा:

const Stateless = ({ propsDestructuring }) => { 
    return (
    <div>Some JSX</div> 
); 
}; 

लाइव टेम्पलेट का उपयोग करना इस परिदृश्य में काम नहीं होता है, के रूप में वे मौजूदा कोड उत्परिवर्तित नहीं कर सकते, केवल नए डालें। कोई सुझाव?

+0

मुझे लगता है कि यह ऐसा कुछ हो सकता है जिसे JetBrains को सुझाया जा सके और हम इसके लिए वोट दे सकते हैं! https://intellij-support.jetbrains.com/hc/en-us/requests/new?ticket_form_id=66731। महान विचार!! –

+1

ऐसा लगता है कि जेएससीओडीशफ्ट कोडमोड्स के लिए ऐसी चीज हो सकती है। उदाहरण के लिए कक्षाओं से स्टेटलेस घटकों तक जाने के लिए एक कोडोडोड है: https://github.com/reactjs/react-codemod#pure-component –

उत्तर

0

आप से जा सकते हैं:

const Stateless = ({ propsDestructuring }) => (
    <div>Some JSX</div> 
); 

रहे हैं:

const Stateless = ({ propsDestructuring }) => { 
    return (
    <div>Some JSX</div> 
); 
}; 

अपने पाठ कर्सर यहाँ डाल करके:

const Stateless = ({ propsDestructuring }) => (
-----------------------------------------^----- 

और दबाने निम्नलिखित पॉपअप पाने के लिए alt: दर्ज करें:

intellij popup

शीर्ष परिणाम का चयन करने के लिए फिर से दर्ज करें दबाएं और इसे ब्रेसिज़ के साथ एक तीर फ़ंक्शन में परिवर्तित कर दिया जाएगा।

के साथ वर्ग रूपांतरण के लिए समारोह के संबंध

, जहाँ तक मैं वहाँ ऐसा करने के लिए कोई रास्ता नहीं है के बारे में पता कर रहा हूँ, लेकिन आप हमेशा खोजने के उपयोग का प्रयास करें और बदल सकते कन्वर्ट करने के लिए:

const (.*) = \(.*\) => \{ 

रहे हैं:

class $1 extends React.Component { 

यदि आप इसे मैक्रो में रिकॉर्ड करते हैं तो उसे उस ऑपरेशन को थोड़ा तेज करना चाहिए।

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