इसका एक संभावित उपयोग bindActionCreators()
एक ही प्रोप के रूप में एक साथ कई क्रियाओं को "मैप" करना है।
एक सामान्य प्रेषण इस तरह दिखता है:
प्रॉम्प्ट के लिए कुछ सामान्य उपयोगकर्ता क्रियाओं को मैप करें।
const mapStateToProps = (state: IAppState) => {
return {
// map state here
}
}
const mapDispatchToProps = (dispatch: Dispatch) => {
return {
userLogin: () => {
dispatch(login());
},
userEditEmail: () => {
dispatch(editEmail());
},
};
};
export default connect(mapStateToProps, mapDispatchToProps)(MyComponent);
बड़ी परियोजनाओं में प्रत्येक प्रेषण को अलग-अलग मैप करना अनिर्दिष्ट महसूस कर सकता है। यदि हमारे पास क्रियाओं का एक समूह है जो एक दूसरे से संबंधित हैं तो हम इन क्रियाओं को जोड़ सकते हैं । उदाहरण के लिए एक उपयोगकर्ता एक्शन फ़ाइल जिसने सभी प्रकार के विभिन्न उपयोगकर्ता संबंधित कार्य किए। प्रत्येक कार्रवाई को एक अलग प्रेषण के रूप में कॉल करने के bindActionCreators()
बजाय हम उपयोग कर सकते हैं dispatch
।
BindActionCreators () का उपयोग करके कई डिस्पैच
अपने सभी संबंधित कार्यों को आयात करें। वे संभवतः Redux स्टोर में एक ही फ़ाइल में हैं
import * as allUserActions from "./store/actions/user";
और अब डिस्पैच उपयोग bindActionCreators का उपयोग करने के बजाय ()
const mapDispatchToProps = (dispatch: Dispatch) => {
return {
...bindActionCreators(allUserActions, dispatch);
},
};
};
export default connect(mapStateToProps, mapDispatchToProps,
(stateProps, dispatchProps, ownProps) => {
return {
...stateProps,
userAction: dispatchProps
ownProps,
}
})(MyComponent);
अब मैं userAction
आपके घटक के सभी कार्यों को कॉल करने के लिए प्रोप का उपयोग कर सकता हूं ।
IE:
userAction.login()
userAction.editEmail()
या
this.props.userAction.login()
this.props.userAction.editEmail()
।
नोट: आपको bindActionCreators () को एक प्रोप में मैप करने की आवश्यकता नहीं है। (अतिरिक्त => {return {}}
कि नक्शे userAction
)। आप bindActionCreators()
एक ही फाइल की सभी क्रियाओं को अलग-अलग प्रॉप के रूप में मैप करने के लिए भी उपयोग कर सकते हैं । लेकिन मुझे लगता है कि ऐसा करना भ्रामक हो सकता है। मैं प्रत्येक कार्रवाई या "कार्रवाई समूह" को एक स्पष्ट नाम देना पसंद करता हूं। मैं यह भी बताने के लिए पसंद करता हूं ownProps
कि ये "चाइल्ड प्रॉप्स" क्या हैं या वे कहां से आ रहे हैं। Redux + React का उपयोग करते समय यह थोड़ा भ्रमित हो सकता है जहां सभी प्रॉप्स की आपूर्ति की जा रही है ताकि अधिक वर्णनात्मक बेहतर हो।
#3
लिए विकल्प आशुलिपि कैसे है#1
?