Bas*_*spa 5 reactjs material-ui
我用 Material-UI 做了一个多选列表。但是当我选择一个项目时,标签应该缩小并适合输入字段的轮廓。问题是轮廓保持不变,而标签在其后面缩小。
我尝试在 Material-UI 文档中寻找解决方案。似乎没有任何多选列表概述的变体。所以我想知道是因为没有多选列表的轮廓变体,还是由于其他原因。
<FormControl
variant="outlined"
fullWidth
>
<InputLabel
ref={ref => {
this.InputLabelRef = ref;
}}
htmlFor="members"
error={this.props.touched.members && Boolean(this.props.errors.members)}
>
Members
</InputLabel>
<Select
onChange={this.change.bind(null, "members")}
multiple
value={this.state.members}
error={this.props.touched.members && Boolean(this.props.errors.members)}
input={
<OutlinedInput
labelWidth={0}
name="members"
id="members"
/>
}
>
<MenuItem value={'Baspa'}>Baspa</MenuItem>
<MenuItem value={'Plorky'}>Plorky</MenuItem>
<MenuItem value={'Rizzels'}>Rizzels</MenuItem>
</Select>
Run Code Online (Sandbox Code Playgroud)
我还做了一个 CodeSandBox:https ://codesandbox.io/s/jnlx1vky39
这是它的样子:
您错过了文档中显示的几部分,这些部分允许轮廓知道标签宽度:
componentDidMount() {
this.setState({
labelWidth: ReactDOM.findDOMNode(this.InputLabelRef).offsetWidth
});
}
...
<OutlinedInput labelWidth={this.state.labelWidth} name="members" id="members" />
Run Code Online (Sandbox Code Playgroud)
这是完整的代码:
原来的答案不再正确。根据此已解决的 MUI 问题,不再支持 labelWidth。相反,设置label
上的<OutlinedInput>
来匹配label
上的<InputLabel>
。前任:
<InputLabel id="foo">{tag}</InputLabel>
<Select
input={<OutlinedInput label={tag} />}
Run Code Online (Sandbox Code Playgroud)
MUI 文档中的完整示例
归档时间: |
|
查看次数: |
2090 次 |
最近记录: |