के साथ गूंगा घटकों से एपीआई कॉल करें मैं प्रतिक्रिया और रेडक्स के साथ ड्रॉपडाउन को कार्यान्वित करना चाहता हूं। ड्रॉपडाउन अन्य घटक का हिस्सा होगा, इसलिए, यह वास्तव में "गूंगा" घटक है। लेकिन ड्रॉपडाउन को वस्तुओं को लाने, कस्टम फ़िल्टर आदि लागू करने के लिए एपीआई को कॉल करना चाहिए। एपीआई कॉल को प्रमाणीकृत किया जाना चाहिए, टोकन ने इसे वैश्विक स्थिति में संग्रहित किया जाना चाहिए। क्या मुझे घटक प्रोप में टोकन पास करना चाहिए? या ऐसा करने का एक बेहतर तरीका है?Redux
Redux
उत्तर
परिभाषा के अनुसार एक गूंगा घटक गूंगा होना चाहिए: इसका मतलब है कि इसे "शीर्ष से", यानी प्रोप के माध्यम से आवश्यक सब कुछ लेना चाहिए।
केवल "स्मार्ट" (रेडक्स के लिए "कनेक्ट" घटक, पदानुक्रम ऊपर, एक नई (एसिंक) एक्शन का उपयोग करके डेटा लाने के साथ सौदा करेगा, जो तब एपीआई कॉल रिटर्न के दौरान राज्य को संशोधित करेगा, जो होगा अपने नए प्रोप के साथ अपने गूंगा घटक को फिर से प्रस्तुत करें।
Redux मेंतो: मान लें कि आपके API से आ रही (जो वास्तव में अपने "राज्य" का हिस्सा हैं) के साथ एक, एक दूसरे को एक समारोह है कि जब कहा जाता है:
- आपका बेवकूफ घटक दो सहारा लेता है आपके ड्रॉपडाउन चयनित आइटम परिवर्तन।
<MyDumbComponent data={this.props.data} onChange={this.onChange.bind(this)} />
- फिर एक "स्मार्ट" घटक ऊपर पदानुक्रम कि onChange समारोह को सुनने जाएगा, और एक क्रिया (FETCH_DATA)
- (async) कार्रवाई API कॉल करेंगे प्रेषण, और जब डेटा प्राप्त करने, एक और कार्रवाई फोन (FETCH_DATA_SUCCESS) डेटा के साथ
- फिर Redux, एक कम करने के साथ, अपने राज्य कार्रवाई पेलोड
- कौन होगा अपनी नई रंगमंच की सामग्री (नए डेटा के साथ अपने घटक फिर से प्रस्तुत करना) से अपडेट करेंगे, वर्तमान स्थिति से आ रही।
आप इस पढ़ने के लिए चाहते हो सकता है: http://redux.js.org/docs/basics/UsageWithReact.html
और के बारे में async कार्रवाई: http://redux.js.org/docs/advanced/AsyncActions.html
बेवकूफ घटक यह कुछ भी कर सकते अपडेट लाने की तरह मतलब यह नहीं है, तो इसका मतलब यह करने के लिए 'गूंगा' है रेडक्स की अवधारणा, और आपके स्टोर या आप जिस पुस्तकालय का उपयोग कर रहे हैं उसके बारे में कुछ भी नहीं जानता है। लाभ यह है कि आप अपने प्रवाह कार्यान्वयन को बदल सकते हैं और स्मार्ट घटकों को अद्यतन करने के लिए आपके पास केवल थोड़ी सी काम है।
परिदृश्य के प्रकार के लिए आप वर्णन कर रहे हैं, तो आप <Menu>
प्रोप के माध्यम से एक फ़ंक्शन देंगे जो <Menu>
डेटा अपडेट करना चाहता है। <Menu>
रेडक्स के बारे में कुछ नहीं जानता - यह सिर्फ एक फ़ंक्शन निष्पादित कर रहा है - लेकिन यह अभी भी नया डेटा लाने में सक्षम है। जटिलताओं के आधार पर, आप कच्चे एक्शन निर्माता (प्रेषण के लिए बाध्य) से गुज़र सकते हैं और इसे चला सकते हैं।
import * as dataActions from './actions';
// We have dataActions.fetchItems() which is the action creater to get new items.
// Attach items, and the action creator (bound to dispatch) to props
@connect((store) => {
return {items: store.data.items}
}, dataActions)
class ItemsPage extends Component {
static propTypes = {
items: PropTypes.object, // the items from the store, from @connect
fetchItems: PropTypes.func // action dispatcher, from @connect
}
render() {
return (<Menu onChange={this.props.fetchItems} />)
}
}
// Our 'dumb' component that doesnt know anything about Redux,
// but is still able to update data (via its smart parent)
class Menu extends Component {
static propTypes = {
onChange: PropTypes.func // same as fetchItems
}
render() {
return (<button onClick={this.props.onChange}>Update items</button>);
}
}
- 1. Redux
- 2. redux
- 3. Redux
- 4. Redux
- 5. Redux
- 6. Redux
- 7. प्रतिक्रिया Redux कनेक्ट() Redux साथ thunk
- 8. Redux + normalizr
- 9. टाइपप्रति redux
- 10. Redux अनुप्रयोग
- 11. Redux IE11
- 12. redux-thunk
- 13. Redux-saga
- 14. प्रतिक्रिया + Redux:
- 15. Redux सिंक्रोनस या एसिंक्रोनस
- 16. Redux-Router + React-Router
- 17. मैं redux में immutable.js
- 18. प्रतिक्रिया नेविगेशन: Redux
- 19. redux-saga में getState?
- 20. प्रदर्शन मुद्दों प्रतिक्रिया/Redux
- 21. Redux DevTools एक्सटेंशन
- 22. प्रतिक्रिया-नेविगेशन: Redux राज्य
- 23. Redux राज्य mapStateToProps
- 24. Redux - प्रीलोड राज्य
- 25. Redux: अप्रत्याशित preloadedState तर्क CreateStore
- 26. Redux-Form फ़ाइल async सत्यापन
- 27. प्रतिक्रिया राउटर 4.x - Redux
- 28. प्रतिक्रिया Redux अप्रत्याशित कुंजी संग्रह
- 29. शीर्ष स्तर जावास्क्रिप्ट आयात - Redux
- 30. Redux reducers ही राज्य कुंजी