Javascript 默认情况下选中复选框

Javascript 默认情况下选中复选框,javascript,reactjs,admin-on-rest,Javascript,Reactjs,Admin On Rest,我在一个有很多复选框的字段中使用,我希望它们在默认情况下被选中 我试着像这样使用选项属性: <CheckboxGroupInput source="foo" choices={[ { id: 0, name: 'bar' }, { id: 1, name: 'bar' } ]} options={{ checked: true }}/> 但是运气不好,默认情况下,所有复选框都被选中,但它们不可用:它们不能被取消选中,也不能在POST/PUT请求中发送 谢谢 PS:c

我在一个有很多复选框的字段中使用,我希望它们在默认情况下被选中

我试着像这样使用
选项属性

<CheckboxGroupInput source="foo" choices={[
  { id: 0, name: 'bar' },
  { id: 1, name: 'bar' }
]} options={{
  checked: true
}}/>

但是运气不好,默认情况下,所有复选框都被选中,但它们不可用:它们不能被取消选中,也不能在POST/PUT请求中发送

谢谢


PS:check all(检查所有)按钮也很不错,如果有人实现了一个按钮,我很乐意看到它是如何实现的。

我对react(反应)或rest上的admin(管理)不太熟悉,所以我可能离这里很远,但是你能不能把
checked:true(检查:真)
部分放到choices对象中?(即:
{id:0,name:'bar',checked:true}

我对rest上的react或admin不太熟悉,所以我可能离这里很远,但是你不能将
checked:true
部分放入choices对象中吗?(即:
{id:0,name:'bar',checked:true}

您应该在包含此输入的表单上使用

关于checkall按钮,这可以在一个应用程序中实现。您可以复制/粘贴
复选框GroupInput
的代码,并在其中实现逻辑

关于将值转换回数字,请使用“规格化”属性:

<CheckboxGroupInput
    normalize={value => value.map(v => parseInt(v, 10))}
    source="notifications"
    choices={[
        { id: 12, name: 'Ray Hakt' },
        { id: 31, name: 'Ann Gullar' },
        { id: 42, name: 'Sean Phonee' },
    ]}
/>
value.map(v=>parseInt(v,10))}
source=“通知”
选择={[
{id:12,名字:'rayhakt'},
{id:31,名字:'Ann Gullar'},
{id:42,姓名:'Sean Phone'},
]}
/>
您应该在包含此输入的表单上使用

关于checkall按钮,这可以在一个应用程序中实现。您可以复制/粘贴
复选框GroupInput
的代码,并在其中实现逻辑

关于将值转换回数字,请使用“规格化”属性:

<CheckboxGroupInput
    normalize={value => value.map(v => parseInt(v, 10))}
    source="notifications"
    choices={[
        { id: 12, name: 'Ray Hakt' },
        { id: 31, name: 'Ann Gullar' },
        { id: 42, name: 'Sean Phonee' },
    ]}
/>
value.map(v=>parseInt(v,10))}
source=“通知”
选择={[
{id:12,名字:'rayhakt'},
{id:31,名字:'Ann Gullar'},
{id:42,姓名:'Sean Phone'},
]}
/>

原因是:当您使用
checked
属性时,这意味着您正在创建它,并且checked的值始终为真:

选中:为真

这就是为什么它的地位没有改变

使用
defaultChecked
代替
checked
,如下所示:

options={{
    defaultChecked: true
}}
检查

defaultChecked==>bool==>复选框组件的默认状态。 警告:此选项不能与“已检查”选项一起使用。决定 在使用受控或非受控输入元件和移除 这些道具之一


原因是:当您使用
checked
属性时,这意味着您正在创建它,并且checked的值始终为true:

选中:为真

这就是为什么它的地位没有改变

使用
defaultChecked
代替
checked
,如下所示:

options={{
    defaultChecked: true
}}
检查

defaultChecked==>bool==>复选框组件的默认状态。 警告:此选项不能与“已检查”选项一起使用。决定 在使用受控或非受控输入元件和移除 这些道具之一


这不起作用,该选项似乎未在rest上的管理中实现。这不起作用,该选项似乎未在rest上的管理中实现。谢谢。我使用了
defaultValue
。顺便说一句,我将Id设置为数字,但在您手动检查后,它们将作为字符串发送,有一种方法可以将它们保留为数字?是的,您可以使用prop:Edited my answer,并提供一个normalize eFantastic示例!谢谢,谢谢。我使用了
defaultValue
。顺便说一句,我将Id设置为数字,但在您手动检查后,它们将作为字符串发送,有一种方法可以将它们保留为数字?是的,您可以使用prop:Edited my answer,并提供一个normalize eFantastic示例!谢谢。对不起,似乎在rest上的管理中也不能正常工作。对不起,似乎在rest上的管理中也不能正常工作。