2
私のmain.js
には、localStorageアイテムの存在を確認するいくつかのコードがあります。それがある場合は、ミドルウェア経由でApolloClientセットアップにAuthorization
ヘッダを追加します。Vue.js ApolloClientミドルウェアを再実行するにはどうすればよいですか?
ただし、localstorageアイテムがに後で追加された場合は、です。これは、ミドルウェアmain.js
には存在しません。従って、それを拾う/それを知るためにはフルページリフレッシュが必要です。
main.js
をもう一度実行するにはどうすればいいのですか?ここで
は私main.js
です:
import Vue from 'vue'
import ApolloClient, { createNetworkInterface } from 'apollo-client'
import VueApollo from 'vue-apollo'
import App from './App'
import router from './router'
import store from './store'
const networkInterface = createNetworkInterface({ uri: 'https://api.graph.cool/simple/v1/MY-ID-HERE' })
const requestToken = localStorage.getItem('TOKEN')
networkInterface.use([{
applyMiddleware (req, next) {
if (!req.options.headers) {
req.options.headers = {}
}
req.options.headers['Authorization'] = requestToken ? `Bearer ${requestToken}` : null
next()
}
}])
const apolloClient = new ApolloClient({
networkInterface
})
const apolloProvider = new VueApollo({
defaultClient: apolloClient
})
Vue.use(VueApollo)
/* eslint-disable no-new */
new Vue({
el: '#app',
template: '<App />',
components: {
App
},
apolloProvider,
router,
store
})
うまくいけば、私がやろうとしているかを理解することができますか?私はあなたがapplyMiddleware
関数内でごrequestToken
宣言を移動する必要があると考えてい
おかげ
Oh my lord。それは本当に簡単でしたか?私は今日、あまりにも長い間画面を凝視してきたと思う。ご協力いただきありがとうございます。それはトリックでした! –