Я пытаюсь создать веб-сайт gatsby (реагирующий), который автоматически перенаправляет пользователей на разные языковые индексные страницы на основе их IP-адресов.
Ниже приведена структура моего кода:
layout.en. js
import React, { Component } from 'react'
import axios from 'axios'
class Layout extends Component {
state = {countryCode: ''}
componentWillMount() {
this.getIp()
}
getIp = () => {
axios
.get('https://ipapi.co/json/')
.then(response => {
let data = response.data
this.setState({
countryCode: data.country_code,
})
})
.catch(error => {
console.log(error)
})
}
render(){
if (this.state.countryCode === 'CN') {
window.location = '/cn/'
}
} return
(...)
}
Проблема с вышеуказанной настройкой заключается в том, что пользователи не смогут переключиться обратно на сайт Engli sh, он будет перенаправлять их каждый раз, когда они пытаются посетить страницу индекса по умолчанию. Я понимаю, что для решения этой проблемы мне может потребоваться реализация cook ie или хранилища сеансов, но я не уверен, как это сделать. Было бы здорово, если бы кто-нибудь помог мне пройти через этот процесс.