@connect
berfungsi dengan baik ketika saya mencoba mengakses toko dalam komponen reaksi. Tetapi bagaimana saya harus mengaksesnya dalam beberapa kode lainnya. Sebagai contoh: katakanlah saya ingin menggunakan token otorisasi untuk membuat contoh aksioma saya yang dapat digunakan secara global di aplikasi saya, apa cara terbaik untuk mencapainya?
Ini milik saya 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
Sekarang saya ingin mengakses titik data dari toko saya, di sini akan terlihat seperti apa jika saya mencoba mengambilnya dalam komponen reaksi menggunakan @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() {...}
}
Adakah wawasan atau pola alur kerja di luar sana?
api
dalam App
kelas dan setelah mendapatkan token otorisasi yang dapat Anda lakukan api.defaults.headers.common['Authorization'] = this.props.auth.tokens.authorization_token;
, dan pada saat yang sama Anda dapat menyimpannya di localStorage juga, jadi ketika pengguna me-refresh halaman, Anda dapat memeriksa apakah token ada di localStorage dan jika tidak, Anda dapat mengaturnya., Saya pikir akan lebih baik untuk mengatur token pada modul api segera setelah Anda mendapatkannya.