Javascript 修改localStorage会导致跨源错误
我正在使用reactjs制作一个web应用程序,当开发突然停止时,会出现以下错误:“引发了一个跨源错误。React无法访问开发中的实际错误对象”。我将AuthContext witch将用户数据提供给localStorage:Javascript 修改localStorage会导致跨源错误,javascript,reactjs,react-hooks,react-context,Javascript,Reactjs,React Hooks,React Context,我正在使用reactjs制作一个web应用程序,当开发突然停止时,会出现以下错误:“引发了一个跨源错误。React无法访问开发中的实际错误对象”。我将AuthContext witch将用户数据提供给localStorage: const AuthProvider = ({ children }) => { const token = localStorage.getItem("token"); const userInfo = lo
const AuthProvider = ({ children }) => {
const token = localStorage.getItem("token");
const userInfo = localStorage.getItem("userInfo");
const expiresAt = localStorage.getItem("expiresAt");
const [authState, setAuthState] = useState({
token,
expiresAt,
userInfo: userInfo ? JSON.parse(userInfo) : {},
});
const setAuthInfo = ({ token, userInfo, expiresAt }) => {
localStorage.setItem("token", token);
localStorage.setItem("userInfo", JSON.stringify(userInfo));
localStorage.setItem("expiresAt", expiresAt);
setAuthState({
token,
userInfo,
expiresAt,
});
};
不幸的是,我在更新用户详细信息时遇到问题。
在上下文中,我做了另一个函数:
编辑:我忘了在函数执行后写入userDetails更改为undefined,因此我得到了一个跨原点错误
const setUserInfo = ({ userInfo }) => {
localStorage.removeItem("userInfo");
localStorage.setItem("userInfo", JSON.stringify(userInfo));
setAuthState({
userInfo,
});
};
我有rest api路线来更新详细信息,示例性响应:
{
"success": true,
"user": {
"role": role,
"_id": id,
"username": name,
"email": email,
"createdAd": createdAt,
"__v": 0
}
}
以及用户登录时的用户rest api响应,例如:
{
"success": true,
"token": token,
"expiresAt": expiresAt,
"userInfo": {
"role": role,
"_id": id,
"username": name,
"email": email,
"_id": id
}
}
更新详细信息在我调用它时起作用,但在我收到跨站点错误后
这里是提交函数
const handleUpdate = async (info) => {
setError("");
setLoading(true);
try {
const { data } = await fetchContext.authAxios.put(
"http://localhost:5000/api/v1/auth/update-details",
info
);
const user = data.user;
console.log(user);
auth.setUserState(data);
setError(null);
setLoading(false);
} catch (err) {
setLoading(false);
// const { data } = err.response;
// setError(data.error);
console.log(err);
}
};
好吧,我是哑巴
const setUserInfo = ({ userInfo }) => {};
应该是
const setUserInfo = ( userInfo ) => {};