Как читать куки с Гэтсби? - PullRequest
       16

Как читать куки с Гэтсби?

0 голосов
/ 23 февраля 2020

Я хотел бы сохранить выбранную валюту в куки и получить ее при повторном входе на страницу. Нет проблем с сохранением части, но я получаю этот эффект, когда читаю.

Это мой 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 быстрее?

...