我不知道自己在做什么,但是我正在尝试实现某种侧边栏菜单,当我单击菜单按钮时,该菜单会切换<main>
标签中的内容。但是问题是,当我通过MainMenu
的{{1}}阅读初始页面的内容时,页面会一直停滞直到最终告诉我React已经崩溃。
state
标签:
main
初始状态:
<main
className={classNames(classes.content)}
>
<div className={classes.drawerHeader} />
{ this.state.content }
{ this.state.modal }
</main>
我有一个state = {
open: false,
modal: <GameDialog
dialogTitle={"Title"}
dialogContentText={"Description"}
open={false}
/>,
content: [
<div key={Math.random()}>Still need to write something here</div>,
<ComplexCardGrid
key={Math.random()}
gridHeader="Featured Projects"
category="featured"
featured={true}
/>
]
};
函数,即使我的菜单中使用了它也不会做任何事情:
handleClick
我这样调用handleClick函数:
handleClick = id => {
let newContent = [];
switch (id) {
case MainMenuConstants.COMMERCIAL:
newContent.push(
<ComplexCardGrid
key={Math.random()}
gridHeader="Commercial Projects"
category="commercial"
/>
);
break;
...
case MainMenuConstants.CONTACT:
case MainMenuConstants.ABOUT:
case MainMenuConstants.HOME:
default:
newContent.push(
<div>Still need to write something here</div>
);
newContent.push(
<ComplexCardGrid
key={Math.random()}
gridHeader="Featured Projects"
category="featured"
featured={true}
modalClick={this.openModal}
/>
);
break;
}
this.handleDrawerClose();
this.setState({
content: newContent
})
};
同样,我可能做错了所有事情。但是我该怎么做才能使这项工作呢?
答案 0 :(得分:1)
一些最佳实践提示。
<ComplexCardGrid />
之类的结果的结果。这些仅应在呈现应用程序时创建和使用。