【发布时间】:2020-03-16 01:49:52
【问题描述】:
我有一个 React (typescript) 应用程序,我想在其中显示一个广播组,但像这样分成两列:
为此,我使用了来自@material-ui/core 的两个 RadioGroup,我希望完全控制它们,这样用户就无法在每个组中选择一个选项。我的问题是 RadioGroups 不关心我给他们的value,他们似乎在不受控制的模式下工作。我什至可以在 React DevTools 中看到他们的 props 中的值是可以的。
我是这样做的:
<div>Organizational attributes</div>
<div>
<RadioGroup
value={selectedPivotAttribute && selectedPivotAttribute.id.toString()}
onChange={selectPivotAttribute}
>
{props.attributes.filter(attribute => attribute.isHierarchical).map(attribute => (
<FormControlLabel
label={attribute.name}
key={attribute.id}
value={attribute.id.toString()}
control={<Radio/>}
/>
))}
</RadioGroup>
</div>
<div>Secondary attributes</div>
<div>
<RadioGroup
value={selectedPivotAttribute && selectedPivotAttribute.id.toString()}
onChange={selectPivotAttribute}
>
{props.attributes.filter(attribute => !attribute.isHierarchical).map(attribute => (
<FormControlLabel
label={attribute.name}
key={attribute.id}
value={attribute.id.toString()}
control={<Radio/>}
/>
))}
</RadioGroup>
</div>
这两个 RadioGroup 被正确渲染并正常运行,它们也触发了onChange 处理程序,但它们并不关心我赋予它们的价值,它们只是过着自己的生活,因此它们并不相互排斥。
我正在尝试在代码盒中进行复制,但我什至无法让 RadioGroup 在那里工作。无论如何,这里是:https://codesandbox.io/s/gallant-cloud-yixdd。在保持与案件相关的同时,我想不出比这更简单的事情了。
【问题讨论】:
标签: reactjs material-ui radio-group