2016-09-27 11 views
11

मेरे पास एक मामला है: उपयोगकर्ता एक सक्रियण लिंक खोलता है। उपयोगकर्ता ने अपनी सक्रियण प्रक्रिया पूरी करने के बाद, सिस्टम उसे दूसरे पृष्ठ पर ले जायेगा। मैं ब्राउज़र पर सक्रियण यूआरएल रखना नहीं चाहता, और उपयोगकर्ता को वापस सक्रिय करने के लिए - सक्रियण चरण को रोकना चाहता हूं।प्रतिक्रिया-राउटर: यूआरएल बदलें और स्पष्ट इतिहास

मुझे यह मामला कैसे प्राप्त हो सकता है?

धन्यवाद,

+0

अंत में, मैं इन बयानों से हल करने के कर सकते हैं: history.replaceState ({}, document.title, यूआरएल); props.router.replace (यूआरएल); – user3468795

उत्तर

1

एचटीएमएल 5 इतिहास एपीआई Adding and modifying history entries करने के दो तरीके हैं।

pushState(): वापस राज्य संरक्षित replaceState(): कोई वापस राज्य

मान लिया जाये कि आप react-router उपयोग कर रहे हैं। तो, अपने घटक पर उपयोग

this.props.history.replaceState('your new state') 

अधिक पढ़ें: https://developer.mozilla.org/en-US/docs/Web/API/History_API

वीडियो: https://www.youtube.com/watch?v=1iAG6h9ff5s&index=6&list=PLoYCgNOIyGABj2GQSlDRjgvXtqfDxKm5b

6

reactJS में आप browserHistory इस उद्देश्य के लिए उपयोग करना चाहिए। यह आपको इतिहास का ख्याल रखता है और आपको उन कार्यों को अपने आप लागू करने की आवश्यकता नहीं है।

ब्राउज़र इतिहास में 2 विधियां push() और replace() है जो आपके उत्तर में उल्लिखित @fazal के समान कार्य करता है लेकिन बेहतर तरीके से करता है।

तो आप अपने कोड में आयात करने के साथ browserHistory().replace

प्रारंभ उनका उपयोग करना होगा अगर तुम वापस पहले वाली स्थिति के लिए जा रहा उपयोगकर्ता से बचना चाहते हैं: -

import {browserHistory} from 'react-router' 

के बाद उपयोगकर्ता, निम्न करना ही सक्रिय हो गया है: -

browserHistory.replace(//your new link) 
+0

हाय, मैंने इस तरह से प्रयास किया, मैं अभी भी ब्राउज़र पर यूआरएल को फिर से लिख नहीं सकता। (मुझे पता है कि यूआरएल बदलना एसपीए ऐप का एक आम व्यवहार नहीं है।) – user3468795

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