【发布时间】:2020-12-28 01:31:37
【问题描述】:
我正在使用 react hooks,遇到了一个我现在卡住的问题。
我有一个 json 数据,每当用户 logs in 时我都会得到这些数据,因此我正在创建一个显示 user names 的顶部栏,当用户单击这些名称时,我将显示他们创建或呈现的一些数据他们在数据库中,我已经在数据中获得了这些数据
我从服务器获取的数据
let data= [
{
"id": 1,
"name": "Maxi",
"myData": [
{
"data_name": "div1",
"data_title": "div1 tittle"
},
{
"data_name": "div1",
"data_title": "div tittle"
}
]
},
{
"id": 2,
"name": "Phill",
"myData": [
{
"data_name": "div21",
"data_title": "div21 tittle"
}
]
}
]
在我从顶部选择的名称中,我想要在其上创建新 div 的一侧有一个按钮。
所以假设我已经列出了topbar 并且总共有 3 个数据,即 3 个名称,所以如果数据长度小于 4 我正在做的事情,显示一个加号按钮来创建一个更多选项卡,所以用户可以创建多一个标签,然后他们可以在每个标签内创建一个 div,
我做了什么
我正在填充顶部栏以及当我单击侧边按钮时,我正在该选定选项卡内创建一个 div。
我面临的问题
- 如果数据长度小于四,我将提供一个加号按钮以在更多选项卡上创建(为其提供默认名称),但我不知道如何创建新选项卡。
- 当我单击侧边按钮在选项卡内创建一个潜水,然后我转到另一个选项卡并再次返回时,我希望创建的
div不应该被删除。 - 假设我有 3 个选项卡(数据),所以当页面加载我想要显示的第一个选项卡数据时,但它没有显示,我需要点击那里,它才会显示。
- 如果数据为空,那么我最多可以创建 4 个选项卡,这也是我=想要一些想法来做的。
我在此处链接我的代码沙箱,以便于理解我所做的和我正在尝试做的事情
在代码沙箱中我已经写了所有代码,请检查一下。
我已经解释了我正在尝试做的每一件事,我知道如何编码,但没有得到任何想法或方法。
如果没有用户数据,那么我将从 1 开始为该用户创建选项卡和嵌套元素。
在每个创建的每个新元素中都会有一个保存按钮,所以我会这样做,我唯一需要注意的是,当我创建它们后,当我从一个选项卡转到另一个选项卡时,不会丢失 ui 上的数据
export default function App() {
const [active_menu, setactive_menu] = useState(0);
const [nestedData, setnestedData] = useState(null);
let data1 = [
{
id: 1,
name: "Maxi",
myData: [
{
data_name: "div1",
data_title: "div1 tittle"
},
{
data_name: "div1",
data_title: "div tittle"
}
]
},
{
id: 2,
name: "Phill",
myData: [
{
data_name: "div21",
data_title: "div21 tittle"
}
]
}
];
const Tab_click = (index, li) => {
setactive_menu(index);
setnestedData(li);
};
const Create_element = () => {
//here I don't know how to create new elements
};
const addnewTab=()=>{
}
return (
<div className="App row">
{data1.map((li, index) => (
<div className="col-4 col-sm-4 col-md-3 col-lg-3 col-xl-3" key={index}>
<div
className={
index === active_menu
? "row dashboard_single_cont_active"
: "row dashboard_single_cont"
}
onClick={() => Tab_click(index, li)}
>
<div className="dashboard_name col-10 col-sm-10 col-md-9 col-lg-10 col-xl-10">
{li.name}
</div>
<div
className={
active_menu === index
? "dashboard_option_active col-2 col-sm-2 col-md-3 col-lg-2 col-xl-2"
: "dashboard_option col-2 col-sm-2 col-md-3 col-lg-2 col-xl-2"
}
align="center"
></div>
</div>
</div>
))}
{data1.length < 4 && (
<span
onClick={addnewTab}
>ADD</span>
)}
<div className="col-11 col-sm-11 col-md-11 col-lg-11 col-xl-11">
<div className="row">
{nestedData !== null &&
nestedData.myData.map((li, index) => (
<div className="col-11 col-sm-11 col-md-8 col-lg-6 col-xl-6">
<NEsted data={li} />
<br></br>
</div>
))}
</div>
</div>
<RightBar Create_element={Create_element} />
</div>
);
}
【问题讨论】:
标签: javascript css reactjs react-hooks