我有一个包含2个玩家的结构表,但是Player当我发送JSON时,我需要忽略结构中的一些属性.
我可以使用json:"-",但随后属性将被忽略,我只需要在发送Table结构时忽略它.当我发送Player代码的其他部分时,我需要这些属性.
我有:
type Player struct {
Id Int64 `json:"id"`
Username string `json:"username,omitempty"`
Password string `json:"-,omitempty"`
Email string `json:"email,omitempty"`
Birthdate time.Time `json:"birthdate,omitempty"`
Avatar string `json:avatar,omitempty"`
}
type Table struct {
Id int `json:"id"`
PlayerTop Player `json:"playerTop"`
PlayerBottom Player `json:"playerBottom"`
}
Run Code Online (Sandbox Code Playgroud)
我需要:
{
"Table": {
"id": 1,
"playerBottom": {
"id": 1,
"username": "peter",
"avatar": "avatar.png"
},
"playerTop": {
"id": 1,
"username": "peter",
"avatar": "avatar.png"
}
}
}
Run Code Online (Sandbox Code Playgroud)
玩家来自数据库,因此属性不为空.
a)我可以这样做:
myTable = new(Table)
myTable.PlayerBottom.Email = "" …Run Code Online (Sandbox Code Playgroud) 我花了 2 天时间试图了解错误在哪里,知道吗?
应用程序.js
import React, { useState, useEffect} from 'react';
import Menu from './components/Menu';
function App() {
return (
<Menu></Menu>
);
}
export default App;
Run Code Online (Sandbox Code Playgroud)
菜单.js
import React, { useState, useContext } from 'react';
import Logout from './Logout';
function Menu() {
return (
<button onClick={() => Logout()}>button</button>
);
}
export default Menu;
Run Code Online (Sandbox Code Playgroud)
登出.js
import React, { useContext, useState } from 'react';
export function Logout() {
const [user, setUser] = useState();
const [token, setToken] = useState();
localStorage.removeItem("token");
localStorage.removeItem("user");
setToken();
setUser(); …Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个按钮来注销用户并将逻辑移动到自定义挂钩useLogout.js。
菜单.js
import useLogout from './useLogout';
import UserContext from './UserContext';
import TokenContext from './TokenContext';
function Menu() {
const [user, setUser] = useContext(UserContext);
const [token, setToken] = useContext(TokenContext);
/* some code....*/
let button;
if (token && token.access_token && user) {
button = <Button onClick={useLogout}>Logout</Button>;
} else {
button = <Button>Login</Button>;
}
/* some code.... */
return(
<Nav.Link>
{button}
</Nav.Link>
)
}
Run Code Online (Sandbox Code Playgroud)
使用Logout.js
import React, { useContext, useState} from 'react';
import UserContext from './UserContext';
import TokenContext from './TokenContext';
export default …Run Code Online (Sandbox Code Playgroud)