显示签入反应

display checked in react

当 i 等于 0 时,我正在尝试显示添加已选中的输入

我有一个检查状态,它是一个布尔值 所以我应该得到 checked= true 然后 checked= false

   lists.map( ( {  names = '' }, i ) => {
                            if(i === 0) {
                              setAttributes({checked : true});
                            }else{setAttributes({checked : false});}
                            return  <Fragment>
                                    <input className="noms" type="radio" id={ i } checked={checked}/>

但是我怎么会被检查="checked"然后什么都没有 这个

 <input type="radio" name="vehicle" value="Bike"> I have a bike<br>
 <input type="radio" name="vehicle" value="Car" checked="checked"> I have a car<br> 

尝试这样的事情:

<input className="noms" type="radio" id={ i } {checked ? 'checked="checked"' : '' />

这会评估您的布尔变量,然后如果检查为真则输出字符串 checked="checked",如果检查为假则输出空字符串。 BooleanExpression ? ifTrue : ifFalse 模式称为 ternary operator.

这就是您的 Fragment 中需要的内容:

<input className="noms" type="radio" id={i} checked={checked ? checked : false}/>

您实际上不需要 checked 参数的字符串值。我总是使用布尔值,像这样:

<input className="noms" type="radio" id={i} checked={!!checked}/>

为什么!!?它会将任何 truthy 值转换为布尔值 true 并将任何 falsy 值转换为布尔值 false.

此外,您可能需要某个地方的 value 道具。