[英]MenuItem with dynamic value is not working in Material UI React
I am using Select, in Material UI for React, I always get undefined when i select from selector.我在 React 的 Material UI 中使用 Select,当我从选择器中选择时,我总是未定义。 It always happen when we use
MenuItem
value dynamic .当我们使用
MenuItem
值dynamic时总是会发生这种情况。 But if i use static value instead of using dynamic, it works well.但是如果我使用静态值而不是动态值,它运行良好。 But I have to use in dynamic way with
.map
operator.但我必须以动态方式使用
.map
运算符。
Please provide the solution which works well in dynamic value.请提供在动态值中运行良好的解决方案。
Like this -> <MenuItem value={SOME-DYNAMIC-VALUE} />
像这样 ->
<MenuItem value={SOME-DYNAMIC-VALUE} />
this.state.selectedTagetIdentity = '';
onTargetIdentityChange = (event) => {
this.setState({ selectedTagetIdentity: event.target.value }); // its undefined always
}
const splitedIdenties = {
'abc1' :[{ id: 12, age: '2' },{ id: 13, age: '3' }],
'abc2': [{ id: 14, age: '22' },{ id: 15, age: '25' }]
};
<Select value={selectedTagetIdentity} onChange={onTargetIdentityChange}>
{Object.keys(splitedIdenties).map((identityTypeKey, identityTypeIndex) =>
<div key={identityTypeIndex}>
<ListSubheader>{identityTypeKey}</ListSubheader>
{splitedIdenties[identityTypeKey].map(identity =>
<MenuItem key={identity.id} value={identity.id}>{identity.age}</MenuItem>
)}
</div>
)}
</Select>
The issue is you are wrapping MenuItem
with div
.问题是您正在用
div
包装MenuItem
。 MenuItem
elements must be direct descendants of material-ui Select
: MenuItem
元素必须是 material-ui Select
直接后代:
⚠️The MenuItem elements must be direct descendants when native is false.
⚠️当 native 为 false 时,MenuItem 元素必须是直接后代。
To fix that, remove the wrapping div:要解决这个问题,请删除包装 div:
<Select value={personName} onChange={onTargetIdentityChange}>
{Object.keys(splitedIdenties).map((identityTypeKey, identityTypeIndex) =>{
let children = [];
children.push(<ListSubheader>{identityTypeKey}</ListSubheader>);
splitedIdenties[identityTypeKey].forEach(identity => {
children.push(<MenuItem key={identity.id} value={identity.id}>{identity.age}</MenuItem>)
})
return children;
}
)}
</Select>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.