【发布时间】:2020-11-04 12:17:45
【问题描述】:
我有一个名为“_user_attributes”的 cookie。 cookie 包含一个 URL 编码的 JSON 数据字符串。例如,
%7B%22user_id%22%20%3A%20%2212345%22%2C%20%22user_givenName%22%20%3A%20%22First%22%20%7D
解码为
{"user_id" : "12345", "user_givenName" : "First" }
基本上,我想把解码后的 cookie 变成一个对象。所以我一直在做以下事情:
var _user_attributes = cookies.get('_user_attributes')
const user_attributes = JSON.parse(_user_attributes)
这行得通。奇怪的是,它仅在我第一次加载页面时才有效。如果我刷新页面,我会得到“SyntaxError: Unexpected token u in JSON at position 0”。
我完全不明白为什么会这样。如果有人有任何建议,我将不胜感激。我的页面的完整代码如下。
import React, { Component, createRef } from "react";
import { withCookies, Cookies } from "react-cookie";
class App extends Component {
constructor(props) {
super(props)
const { cookies } = props;
var _user_attributes = cookies.get('_user_attributes')
const user_attributes = JSON.parse(_user_attributes)
console.log(_user_attributes)
this.state = {
name: user_attributes.name
}
}
render() {
return (
<p>{this.state.name}</p>
);
}
}
export default withCookies(App);
【问题讨论】:
标签: javascript reactjs next.js