我尝试设置一个RadioGroup
组件,其Radio
组件包含'数据'标签最初检查。但是,当我使用以下代码时:
<RadioGroup
onChange={(e) => {
this.store.setDataFilterSelection(e.target.value)
}}
>
<Radio label='Data'
defaultChecked
value='1'
className='radio-selectors' />
<Radio label='Description'
value='2'
className='radio-selectors' />
<Radio label='Data Source'
value='3'
className='radio-selectors' />
</RadioGroup>
我在控制台中收到以下警告。
Blueprint.Radio包含一个类型为radio的输入,其中包含checked和 defaultChecked道具。输入元素必须是受控的或 不受控制(指定已检查的prop或defaultChecked 道具,但不是两个)。决定使用受控制还是不受控制 输入元素并删除其中一个道具。更多信息: 反应控制的组件
我尝试了几种变体而且似乎无法正确使用,基本上我希望能够监控单选按钮的变化,但我无法将它们绑定到他们在这里的示例中完成了状态:http://blueprintjs.com/docs/#components.forms.radio
答案 0 :(得分:1)
defaultChecked
仅在不受控制的使用中受支持(这是一个核心的React概念,而不是Blueprint的东西),而checked
仅在受控使用中受支持 - 这就是React错误告诉的内容你。
但是,如果你正在使用RadioGroup
,那么所有Radio
个孩子都会被迫进入受控模式,所有州都应该通过RadioGroup
。但是RadioGroup
目前不支持defaultValue
道具,所以这实际上是不可能的。我把它称为蓝图中的一个错误,所以很好找!
请在回购邮件上file an issue,我们会考虑实施这个(或者更好的是,提交修复公关!)
答案 1 :(得分:0)
我有同样的错误,我使用useState并设置了要声明为默认状态的值
const [radio, setRadio] = useState('defaultValue');
。
因为我们不能使用defaultChecked,所以我使用上述方法来获取默认检查的选项。