作为回应,我如何在ExpansionPanel

时间:2018-09-28 12:22:06

标签: reactjs material-ui

在使用Material-UI的React组件中,我有这个

<ExpansionPanel defaultExpanded>

我需要对defaultExpanded进行逻辑设置(例如:如果我只有1个要使用defaultExpanded的组件实例)。

我可以根据逻辑设置名为expanded的变量,例如

expanded = ''
if (logic) {
  expanded = 'defaultExpanded'
} 

...然后像这样使用expanded变量...

<ExpansionPanel {expanded} >

这会爆炸-无法编译。我已经尝试了许多变体,但没有找到在react中动态设置ExpansionPanel的defaultExpanded属性的方法。

2 个答案:

答案 0 :(得分:0)

defaultExpanded是ExpansionPanel的布尔属性。

因此,您可以尝试如下操作:

expanded = false
if (logic) {
expanded = true
}

 <ExpansionPanel defaultExpanded={expanded} > 

答案 1 :(得分:0)

当您调用包含扩展面板的无状态组件时,可以将其作为prop变量传递。例如:

if(Some default expanded logic here)
<ExpansionPanelMenu defaultExpanded />

然后在实际组件中将其作为道具传递

 const { defaultExpanded } = props;
    <ExpansionPanel
    defaultExpanded={defaultExpanded}
  >