首页 > 解决方案 > Next.js 用户获取位置

问题描述

我想用 cloudflare 带来用户位置。本地主机和谷歌云带来不同的结果。我想访问成员的位置信息,而不是服务器。我可以使用什么来代替 getStaticProps?

我的代码;

export async function getStaticProps() {
  const one = await fetch("https://www.cloudflare.com/cdn-cgi/trace");
  const two = await one.text();
  var data = two.replace(/[\r\n]+/g, '","').replace(/\=+/g, '":"');
  data = '{"' + data.slice(0, data.lastIndexOf('","')) + '"}';
  var locale = JSON.parse(data);

  return {
    props: { locale },
  };
}

function myPage(props) {
   return (props.locale.loc)
}

解决的代码;

  let [locData, setLocData] = useState("EN");
  useEffect(() => {
    fetch("https://www.cloudflare.com/cdn-cgi/trace")
      .then((response) => response.text())
      .then((two) => {
        var data = two.replace(/[\r\n]+/g, '","').replace(/\=+/g, '":"');
        data = '{"' + data.slice(0, data.lastIndexOf('","')) + '"}';
        var locale = JSON.parse(data);
        setLocData(locale.loc);
      });
  }, []);

标签: next.jslocationcloudflare

解决方案


推荐阅读