@connect
जब मैं एक प्रतिक्रिया घटक के भीतर स्टोर तक पहुँचने की कोशिश कर रहा हूँ तो बहुत अच्छा काम करता है। लेकिन मुझे इसे किसी अन्य बिट कोड में कैसे एक्सेस करना चाहिए। उदाहरण के लिए: मान लीजिए कि मैं अपने अक्षतंतु उदाहरण बनाने के लिए एक प्राधिकरण टोकन का उपयोग करना चाहता हूं जिसे मेरे ऐप में विश्व स्तर पर उपयोग किया जा सकता है, इसे प्राप्त करने का सबसे अच्छा तरीका क्या होगा?
यह मरा है api.js
// tooling modules
import axios from 'axios'
// configuration
const api = axios.create()
api.defaults.baseURL = 'http://localhost:5001/api/v1'
api.defaults.headers.common['Authorization'] = 'AUTH_TOKEN' // need the token here
api.defaults.headers.post['Content-Type'] = 'application/json'
export default api
अब मैं अपने स्टोर से एक डेटा बिंदु का उपयोग करना चाहता हूं, यहां वह है जो ऐसा लगेगा जैसे मैं उपयोग करने के बाद एक प्रतिक्रिया घटक के भीतर लाने की कोशिश कर रहा था @connect
// connect to store
@connect((store) => {
return {
auth: store.auth
}
})
export default class App extends Component {
componentWillMount() {
// this is how I would get it in my react component
console.log(this.props.auth.tokens.authorization_token)
}
render() {...}
}
किसी भी अंतर्दृष्टि या कार्यप्रवाह पैटर्न वहाँ?
api
में आयात कर सकते हैं App
और प्राधिकरण टोकन प्राप्त करने के बाद आप कर सकते हैं api.defaults.headers.common['Authorization'] = this.props.auth.tokens.authorization_token;
, और साथ ही साथ आप इसे लोकलस्टोरेज में भी स्टोर कर सकते हैं, इसलिए जब उपयोगकर्ता पृष्ठ को रीफ्रेश करता है, तो आप जांच सकते हैं कि टोकन लोकलस्टोरेज में मौजूद है या नहीं करता है, आप इसे सेट कर सकते हैं। मुझे लगता है कि जैसे ही आप इसे प्राप्त करेंगे, एपीआई मॉड्यूल पर टोकन सेट करना सबसे अच्छा होगा।