【发布时间】:2018-05-21 02:01:16
【问题描述】:
我有一个使用 material-ui 列表构建的用户仪表板。对于每个 listItem 我都有一个组件。我想要的是,当我单击列表元素时,有一个专门用于切换组件的部分。我无法实现这一点。这是我的代码。我不确定将onClick 处理程序放在哪里。我会很感激任何线索。甚至在单击特定 listItem 时登录。然后我可以继续使用反应条件渲染。
在下图中,当用户单击所有事件时,右侧会呈现一个组件。当MyEvents 被点击时,它的一个组件就会被渲染出来。
代码:
UserTileData.js
export const profileFolderListItems = (
<div>
<ListItem button>
<ListItemIcon>
<SendIcon />
</ListItemIcon>
<Badge badgeContent={3} color='primary'>
<ListItemText primary='Events attending' />
</Badge>
</ListItem>
<ListItem button>
<ListItemIcon>
<CreateIcon />
</ListItemIcon>
<ListItemText primary='New Event' />
</ListItem>
</div>
)
UserProfilePage.js
class UserProfile extends Component {
constructor (props) {
super(props)
this.state = {
componentTodisplay: null
}
}
render () {
const { classes } = this.props
return (
<div>
<div className={classes.root}>
<Drawer
variant='permanent'
classes={{
paper: classes.drawerPaper
}}
>
<div className={classes.toolbar} />
<List >{eventsFolderListItems}</List>
<Divider />
<List>{profileFolderListItems}</List>
</Drawer>
<main className={classes.content}>
<div className={classes.toolbar} />
{/* componentToDisplay goes here */}
</main>
</div>
</div>
)
}
}
UserProfile.propTypes = {
classes: PropTypes.object.isRequired
}
export default withStyles(styles)(UserProfile)
【问题讨论】:
-
您能否澄清一下切换组件的实际含义?你想条件渲染吗?还是换道具?
-
@Abrar 我已经用视觉辅助更新了这个问题
-
您如何传递
profileFolderListItems中的列表项名称?我的意思是primaryprops,不应该是动态渲染的吗? -
UserTileData.js有这些信息。
标签: reactjs material-ui