Я хотел бы сохранить выбранную валюту в куки и получить ее при повторном входе на страницу. Нет проблем с сохранением части, но я получаю этот эффект, когда читаю.
Это мой gatsby-browser.js
файл. Я получаю значение cook ie, а затем передаю его в React Context API для использования везде.
import React from 'react'
import { MainProvider } from './src/contexts/MainContext'
let currency = ''
if (typeof document !== 'undefined') {
const getCookie = document.cookie.match('(^|;)\\s*currency\\s*=\\s*([^;]+)')
currency = getCookie.pop()
}
export const wrapRootElement = ({ element }) => {
return (
<MainProvider currency={currency}>
{element}
</MainProvider>
)
}
В index.jsx
файле Я читаю валюту из состояния. Но когда я обновляю страницу sh, сначала я вижу «usd», а затем мгновенно появляется значение «1014». Там всегда эффект бросается в глаза. Похоже на готовку ie - процесс чтения идет медленно.
import React, { useContext } from 'react'
import { MainContext } from './../contexts/MainContext'
const Index = () => {
const { state } = useContext(MainContext)
const currency = state.currency || 'usd'
return (
<div>{currency}</div>
)
}
export default Index
Есть ли способ прочитать файлы cookie быстрее?