2015-10-06 11 views
6

मैं क्या करना चाहते हैं:में प्रतिक्रिया मैं एक आवरण के बिना एक घटक के बच्चों प्रदान कर सकते हैं?

render:() -> 
     {@props.children} 

यह मुझे करना बना रही है:

render:() -> 
     <div>{@props.children}</div> 

कारण मैं क्योंकि गाया बच्चों को उनके मालिक आधारित संदर्भ निर्धारित किया है पूर्व है करना चाहते हैं। लेकिन अगर मैं उन्हें रैपर के साथ प्रस्तुत करता हूं तो मूल तत्व जो माता-पिता होता है उसका संदर्भ सेट नहीं होता है।

मालिक आधारित और माता पिता आधारित संदर्भों अलग (मान:: undefined बनाम [object Object]) के लिए कुंजी (एक्स)

यह यहाँ पर चर्चा की है: यह तो एक चेतावनी उत्पन्न https://gist.github.com/jimfb/0eb6e61f300a8c1b2ce7

लेकिन कोई समाधान की पेशकश की है ।

चेतावनी होती है क्योंकि घटक है जो बच्चे renders 'मालिक' है और इस संदर्भ settting है, लेकिन div आवरण तत्व 'माता-पिता' है और कोई संदर्भ नहीं है। मेरा विचार div से छुटकारा पाने के लिए था। लेकिन मैं इससे छुटकारा नहीं पा सकता हूं।

+0

हम्म, 'div' संदर्भ प्रभावित नहीं होना चाहिए। आप और अधिक कोड या और भी बेहतर, एक JSBin उदाहरण है (विशेष रूप से घटक है कि यह एक renders, और संदर्भ/इस्तेमाल किया सेट कर दिया जाता है, जहां)? –

+0

मैं भी सीएसएस कारणों के लिए यह करने के लिए, चाहते हैं। –

+0

यह एक असंबंधित समस्या थी। असल में मैं बच्चों को एक संलग्न div तत्व के बिना प्रस्तुत करने में सक्षम हूं। (संघर्ष FluxMixin से जोड़ा fluxxor का एक उदाहरण और एक उदाहरण के एक घटक के द्वारा जोड़ा बीच था कारक प्रतिक्रिया रूटर के साथ प्रयोग किया आवरण बनाएँ)। धन्यवाद। –

उत्तर

3

मैं निम्नलिखित कोड का उपयोग किया है केवल text बच्चों पर एक आवरण <span> उपयोग करने के लिए:

render() { 
    if (!this.props.children) { 
    return null; 
    } else if (React.isValidElement(this.props.children)) { 
    return this.props.children; 
    } 
    return <span>{this.props.children}</span>; 
} 
1

स्थितियों में जहां एक भी बच्चे की जरूरत है:

render() { 
    return React.Children.only(this.props.children) 
} 

यह वही प्रतिक्रिया-redux है connect(), एफडब्ल्यूआईडब्ल्यू में उपयोग करता है।

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