为什么在反应 js 中没有选中复选框?
why checkbox is not checked in react js?
我正在使用 react final form
但我无法 checked
checkbox
。我不知道我做错了什么。这是我的
Code
const AppWithIconToggle = ({ input }) => {
console.log("ddd", !!input.value);
return (
<div>
<SForm.Checkbox
checked={!!input.value}
name={input.name}
toggle
onChange={(e, { checked }) => input.onChange(checked)}
/>
</div>
);
};
因为你的SForm.Checkbox
的checked
属性收到了undefined
。您传递的是未定义的错误 属性 (input.value
),因此 !!undefined
始终是 false
。将其更改为 input.checked
然后它按预期工作:
const AppWithIconToggle = ({ input }) => {
return (
<div>
<SForm.Checkbox
checked={!!input.checked}
name={input.name}
toggle
onChange={(e, { checked }) => input.onChange(checked)}
/>
</div>
);
};
正如@Sirwan 提到的。你的 !!undefined
总是 return false
尝试使用 useState 钩子
// import 'useState'
import React, { useState } from "react"
const AppWithIconToggle = ({ input }) => {
// initial check value is 'false'
const [checked, setChecked] = useState(false)
console.log(checked)
return (
<div>
<SForm.Checkbox
checked={checked} // checked value
name={input.name}
toggle
onChange={() => setChecked(!checked)} // toggle checked value onChange
/>
</div>
)
}
检查你的codeSandbox
我正在使用 react final form
但我无法 checked
checkbox
。我不知道我做错了什么。这是我的
Code
const AppWithIconToggle = ({ input }) => {
console.log("ddd", !!input.value);
return (
<div>
<SForm.Checkbox
checked={!!input.value}
name={input.name}
toggle
onChange={(e, { checked }) => input.onChange(checked)}
/>
</div>
);
};
因为你的SForm.Checkbox
的checked
属性收到了undefined
。您传递的是未定义的错误 属性 (input.value
),因此 !!undefined
始终是 false
。将其更改为 input.checked
然后它按预期工作:
const AppWithIconToggle = ({ input }) => {
return (
<div>
<SForm.Checkbox
checked={!!input.checked}
name={input.name}
toggle
onChange={(e, { checked }) => input.onChange(checked)}
/>
</div>
);
};
正如@Sirwan 提到的。你的 !!undefined
总是 return false
尝试使用 useState 钩子
// import 'useState'
import React, { useState } from "react"
const AppWithIconToggle = ({ input }) => {
// initial check value is 'false'
const [checked, setChecked] = useState(false)
console.log(checked)
return (
<div>
<SForm.Checkbox
checked={checked} // checked value
name={input.name}
toggle
onChange={() => setChecked(!checked)} // toggle checked value onChange
/>
</div>
)
}
检查你的codeSandbox