Я ищу способ принудительно установить панель расширения на expanded=false
, когда панель расширения отключена. Представьте себе расширенную панель расширения. Произойдет событие, и панель расширения будет отключена. Моя проблема в том, что он все еще расширяется. Я хочу принудительно установить expanded=false
, но не знаю, как это сделать.
Вот мой код:
return (
<ExpansionPanel disabled={props.body==null} >
<ExpansionPanelSummary
expandIcon={<ExpandMoreIcon />}
id="panel1a-header"
classes={{
content: classes.spaced,
}}
>
<Box fontWeight="fontWeightBold">{props.name}</Box>
<Box fontWeight="fontWeightBold" className={props.hasError ? classes.error : classes.ok}>
{props.hasError ? 'DOWN' : 'UP'}
</Box>
</ExpansionPanelSummary>
<ExpansionPanelDetails
classes={{
root: classes.rowSpaced
}}>
{
props.body != null && props.body.checks != null ?
<Box>
<List
component="nav"
aria-labelledby="nested-list-subheader"
subheader={
<ListSubheader component="div" id="nested-list-subheader">Liveness</ListSubheader>
}
className={classes.root}
>
<ListItem>
<ListItemText>
<Box display="flex" flexDirection="row" className={classes.spaced}>
<Typography key={props.body.checks[0].name}>{props.body.checks[0].name}</Typography>
<Typography key={props.body.checks[0].name + props.body.checks[0].status} className={props.body.checks[0].status === 'UP' ? classes.ok : classes.error}>
{props.body.checks[0].status}
</Typography>
</Box>
</ListItemText>
</ListItem>
</List>
<Divider />
<List
component="nav"
aria-labelledby="nested-list-subheader"
subheader={
<ListSubheader component="div" id="nested-list-subheader">
Readyness
</ListSubheader>
}
className={classes.root}
>
{
props.body != null && props.body.checks != null ? props.body.checks.slice(1).sort((a, b) => (a.name > b.name) ? 1 : -1).map((check, i) => (
<ListItem key={check.name + check.status}>
<ListItemText>
<Box display="flex" flexDirection="row" className={classes.spaced}>
<Typography key={check.name}>{check.name}</Typography>
<Typography key={check.name + check.status} className={check.status === 'UP' ? classes.ok : classes.error}>
{check.status}
</Typography>
</Box>
</ListItemText>
</ListItem>
)) : null
}
</List>
</Box>
: null
}
</ExpansionPanelDetails>
</ExpansionPanel>
);
Если props.body==null
, то панель расширения должна быть disabled=true
И expanded=false
, потому что я не хочу, чтобы он был расширен, когда он отключен ... Если this.props.body!=null
, тогда я хочу, чтобы пользователь щелкнул по нему, чтобы развернуть его по своему усмотрению.
Обратите внимание на props.body != null && props.body.checks != null ?
условие, потому что выполняется вызов asyn c. См. отреагируйте на this.props неопределенный или пустой объект
Как это сделать?
Спасибо!