2016-02-17 12 views
8

रेडक्स में संबंधित कार्यकर्ताओं के साथ कई राज्यों को जोड़ने का उचित तरीका क्या है? और यह भी एक अच्छा विचार है? अगर मैं एक बेवकूफ विचार है तो मैं इसके आसपास कैसे काम कर सकता हूं?रेडक्स कनेक्ट() गुणक क्रियाओं/राज्यों के साथ

export default connect(

// which part of the Redux global state does 
// our component want to receive as props? 
(state) => { 
    return { 
    state: state.instagram 
    }; 
}, 

// which action creators does 
// it want to receive by props? 
(dispatch) => { 
    return { 
    actions: bindActionCreators(instagramActions, dispatch) 
    }; 
} 

)(FeedContainer); 

क्या मैं मूल रूप से चाहते हैं कुछ इस तरह है:

... 
state: {state.instagram, state.facebook} 
... 

... 
const mergedActions = {instagramActions, facebookActions}; 
actions: bindActionCreators(mergedActions , dispatch) 
... 

उत्तर

6

प्रदान की कॉलबैक mapStateTopProps और mapDispatchToProps का उपयोग करते हुए अपने राज्य की फ़िल्टर सबसेट और पहले से ही बाध्य actionCreators के साथ अपने घटक कनेक्ट करने के लिए उचित तरीका है।

को प्राप्त करने के लिए आप क्या आप बस कर सकता हैं:

(state) => { 
    const { instagram, facebook } = state; 
    return { 
    state: { instagram, facebook } 
    }; 
} 

और

(dispatch) => { 
    return { 
    actions: bindActionCreators(Object.assign({}, instagramActions, facebookActions), dispatch) 
    }; 
} 

यह काम नहीं करता:

actions: bindActionCreators({instagramActions, facebookActions} , dispatch) 

के रूप में विधि अभी तक नेस्टेड वस्तुओं का समर्थन नहीं करता । See code here। यह केवल चाबियों पर फिर से चलाता है और कार्यों की तलाश करता है।

अपने mapDispatchToProps भीतर कालबैक आप अतिरिक्त राज्य परत छोड़ सकता दूर

(state) => { 
    const { instagram, facebook } = state; 
    return { 
     instagram, 
     facebook 
    }; 
} 

ऐसा करने से आप के साथ रंगमंच की सामग्री का उपयोग कर सकते हैं:

this.props.facebook और this.props.state.facebook और this.props.state.instagram के बजाय this.props.instagram। लेकिन यह केवल शैली का सवाल है जो मुझे लगता है।

वहाँ अपने राज्य बंधन के कई तरीके हैं और रंगमंच की सामग्री के लिए प्रेषण। अंत में यह शैली का सवाल है। मैं यह कैसे करना है के कई अलग अलग उदाहरण प्रदान कर सकता है, लेकिन बेहतर कोलाहल 6 के साथ आधिकारिक दस्तावेज में एक देखो अपनी शैली https://github.com/reactjs/react-redux/blob/master/docs/api.md

+0

लेने के लिए और लगता है, तो आप इस के लिए वस्तु प्रसार की जरूरत है। –

+0

हाँ मैं वाक्य रचना अद्यतन सकता है अगर – larrydahooster

+0

चाहता था भले ही आप अपने घटक रंगमंच की सामग्री में कई कार्रवाई रचनाकारों की आवश्यकता नहीं है, यह आपके सभी घटकों भर में एक सम्मेलन से चिपक बुद्धिमान है। – AlxVallejo

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