我的问题很简单,我在<Tooltip>
组件周围有一个<Select>
组件,当我点击Select时,工具提示显示在MenuItems上,如下所示:
正常行为:
行为不正常:
所以我保留了Material-UI和Tooltip的所有默认值:zIndex: 1500
但是我没有看到MenuItem的默认值。我试图将MenuItem的zIndex设置为1501,但它仍然具有相同的行为。
我想知道将工具提示留在MenuItem后面的干净方法是什么,如果不可能那么只需在Select MenuItem打开时隐藏工具提示......
这是我的代码:
<Tooltip title={'Filter by status'}>
<Select value={this.state.status} onChange={this.handleChange.bind(this, Filter.Status)}>
{statuses.sort(this.filterItemSortFn).map(item => {
return (<MenuItem style={{zIndex: 1501}} value={item}>{item}</MenuItem>);
})}
</Select>
</Tooltip>
如果我将工具提示的zIndex设置为较小的值并且它隐藏在menuItems后面,但我并不想使用默认值,因为它也会干扰其他zIndex值。
我制作了一个CodeSandbox:https://codesandbox.io/s/rn68z4xlo
答案 0 :(得分:1)
这是Material-Ui工具提示中的一个错误,我想它已经在新版本中修复了
您可以通过在工具提示中添加zIndex来解决问题
<Tooltip title={"Message"} style={{ zIndex: '1' }}>
<Select
value={this.state.name}
onChange={this.handleChange}
input={<Input id="select-multiple" />}
MenuProps={MenuProps}
>
{names.map(name => (
<MenuItem key={name} value={name}>
{name}
</MenuItem>
))}
</Select>
</Tooltip>
或者,如果要打开菜单,则要完全隐藏它
<Tooltip title={"Message"}
onClick={() => this.setState({ tooltip: !this.state.tooltip })}
style={this.state.tooltip ? {display: 'none'}:{ zIndex: '1' }}>
<Select
value={this.state.name}
onChange={this.handleChange}
input={<Input id="select-multiple" />}
MenuProps={MenuProps}
>
{names.map(name => (
<MenuItem key={name} value={name}>
{name}
</MenuItem>
))}
</Select>
</Tooltip>
定义工具提示状态
class MultipleSelect extends React.Component {
state = {
name: [],
tooltip: false,
};