मैं बैकबोन को बदलने की कोशिश कर रहा हूं। मैरियनेट ऐप प्रतिक्रिया करने के लिए और प्रश्न पैरा के बारे में सोचने में कठिनाई का सामना कर रहा हूं। मुझे लगता है कि इस पैटर्न को समझने में मुझे वास्तव में एक साधारण शांति याद आ रही है, इसलिए अगर मैं यह सवाल पूरी तरह बकवास करता हूं तो मैं क्षमा चाहता हूं। मैं किसी भी समर्थन की सराहना करता हूं या मुझे कुछ दिशा में इंगित करता हूं कि मैं अधिक विशेष रूप से Google पर जा सकता हूं।प्रतिक्रिया में क्वेरी पैराम से निपटने के लिए कैसे करें + प्रतिक्रिया-राउटर + प्रवाह
एक /users
पृष्ठ है जो उपयोगकर्ताओं को सूचीबद्ध करता है और आप उपयोगकर्ताओं को खोज बार के माध्यम से फ़िल्टर कर सकते हैं। इसलिए यदि आप उन उपयोगकर्ताओं को फ़िल्टर करना चाहते हैं जिनमें उनके उपयोगकर्ता नाम में 'जो' है, तो मैं सर्वर पर अनुरोध करता हूं कि क्वेरी पैराम जैसे /users?username=joe
। इसके अलावा मैं page
पैरामीटर जोड़कर भी अंकन कर सकता हूं, (/users?username=joe&page=1
)।
यदि मैं केवल कार्यक्षमता के बारे में सोचना, प्रवाह शायद
- ग्राहक इनपुट तत्व को
joe
सम्मिलित करता है और क्लिक करता है खोजें होगा। - पर क्लिक करना बटन
Action
(जैसे action.getUser) को सक्रिय करता है। Action
सर्वर से अनुरोध करता है और परिणामDispatcher
जिसे (आमतौर परStore
)Action
में रुचि रखता है के लिए परिणाम पेलोड के साथ एक समारोह डिस्पैच प्राप्त करता है।Store
रों परिवर्तन का नया परिणाम के साथ राज्य में परिवर्तनAction
- देखें (
Component
)Store
सुनकर फिर से renders द्वारा प्राप्त '।
और यह अपेक्षा के अनुसार काम करता है। हालांकि, मैं चाहता हूं कि क्लाइंट वर्तमान फ़िल्टर किए गए परिणाम को बुकमार्क करने में सक्षम हो और कुछ समय बाद उसी पृष्ठ पर वापस आ सकें। इसका मतलब है कि क्लाइंट द्वारा किए गए खोज शब्द के बारे में स्पष्ट जानकारी सहेजने के लिए मुझे कहीं और आवश्यकता होगी, जो आम तौर पर यूआरएल (क्या मैं सही हूँ?) है। इसलिए मुझे खोज शब्द (/users?username=joe&page=1
) को सहेजने के लिए क्वेरी पैरामीटर के साथ यूआरएल अपडेट करना होगा।
मुझे क्या उलझन में है यूआरएल कहां और कब अपडेट करना है? मैं अभी क्या कर सकता हूं नीचे 2 विकल्प हैं - और वे बिल्कुल साफ नहीं लगते हैं।
विकल्प 1
- ग्राहक इनपुट तत्व को
joe
सम्मिलित करता है और क्लिक करता है खोजें। - पर क्लिक करना बटन नए क्वेरी पैराम्स (
/users?username=joe&page=1
) के साथ ReactRouter के संक्रमण को सक्रिय करता है। - व्यू (
Component
)this.props.params
औरthis.props.query
के माध्यम से नए पैरा प्राप्त करता है। - व्यू (
Component
)Action
जैसेAction.getUser
को प्राप्त क्वेरी पैराम के आधार पर आग लगती है - इस मामले मेंusername=joe&page=1
।
इस के बाद, यह ऊपर
विकल्प 2 रूप में ही है
- ग्राहक इनपुट तत्व और क्लिक दिखाई दे
joe
सम्मिलित करता है (केवल 6 क्या मैं ऊपर बताया गया है से अलग है) खोज। - पर क्लिक करना बटन
Action
(जैसे action.getUser) को सक्रिय करता है। Action
सर्वर से अनुरोध करता है और परिणामDispatcher
जिसे (आमतौर परStore
)Action
में रुचि रखता है के लिए परिणाम पेलोड के साथ एक समारोह डिस्पैच प्राप्त करता है।Store
रों परिवर्तन का नया परिणाम के साथ राज्य में परिवर्तनAction
- देखें (
Component
)Store
सुनकर फिर से renders द्वारा प्राप्त '। और किसी भी तरह अपडेट हो जाता है अपने यूआरएल के आधार पर (मैं कैसे, अभी तक पता नहीं है) अपनेprops
(जैसेthis.props.searchusername
, औरthis.props.searchpage
)
क्वेरी पैरामीटर से निपटने पर सबसे अच्छा तरीका क्या है? (या यह क्वेरी पैराम के लिए विशिष्ट नहीं हो सकता है) क्या मैं डिजाइन पैटर्न या वास्तुकला को पूरी तरह गलत समझ रहा हूं? किसी भी समर्थन के लिए अग्रिम धन्यवाद।
कुछ लेख मैं
- Any way to get current params or current query from router (outside of component)?
- Async data and Flux stores
- Make it easier to add query parameters
- React Router and Arbitrary Query Params: Page Refreshes Unintentionally on Load?
- Add default params?
सुझाव के लिए धन्यवाद। किसी को खोज परिणाम को बुकमार्क करने के लिए, मैंने सोचा कि आपको खोज शब्द के बारे में कुछ स्पष्ट जानकारी चाहिए। यूआरएल कौन सा होगा। क्या मैं इस बारे में सही हूँ ?? जब भी उपयोगकर्ता खोज बटन पर क्लिक करता है तब भी मैं स्पष्ट नहीं हूं कि यूआरएल कैसे अपडेट हो जाता है। विकल्प 1 आपके समाधान के करीब है ?? मेरे पास पर्याप्त ज्ञान नहीं होने के बारे में खेद है। तुम्हारी मदद के लिए शुक्रिया। – kenfdev
मैं देखता हूं कि आपका क्या मतलब है। मुझे लगता है कि आप https://github.com/rackt/react-router/blob/57543eb41ce45b994a29792d77c86cc10b51eac9/doc/06%20Mixins/Navigation.md – yujingz
मूल रूप से पैराम के साथ उसी पृष्ठ पर नेविगेट कर रहे हैं (इस मामले में आपके खोज शब्द) – yujingz