3 回答

TA貢獻1895條經驗 獲得超7個贊
我沒有嘗試重現你的情況,但嘗試這樣的事情:
onChange={e => handleChange(e)}
比CB中的
const handleChange = (e, value) => {console.log(e, value)}
此致!

TA貢獻1825條經驗 獲得超4個贊
next version (v1.x)和stable version v0.xof有兩個區別chakra-ui
<RadioGroup />在(v0.x)中
onChange?: (
event: React.ChangeEvent<HTMLInputElement>,
value: IRadio["value"],
) => void;
和<RadioGroup />(v1.x)
onChange?(nextValue: StringOrNumber): void;
如果您想參加該活動,您可以降級您的版本chakra-ui

TA貢獻1828條經驗 獲得超13個贊
我遇到了同樣的問題,因為我希望我handleChange在任何類型的領域工作,我已經這樣設置了。
const [formData, setFormData] = React.useState({
inputField: "",
checkBoxField: false,
emailField: "",
distance: "" /* radioField */
})
function handleChange(event) {
const { name, value, type, checked } = event.target
setFormData(prevFormData => {
return {
...prevFormData,
[name]: type === "checkbox" ? checked : value
}
})
}
作為解決方法,我編寫了一個返回假事件的函數。
function createEvent(name, value) {
return {
target: {
name: name,
value: value,
type: "radio",
checked: false
}
}
}
然后我的RadioGroup會是這樣的:
<RadioGroup
name="distance"
onChange={
function(value) {
props.handleChange(
createEvent("distance", value)
)
}
}
>
<Radio value="0.5">0.5</Radio>
<Radio value="2000">1</Radio>
<Radio value="3000">2</Radio>
<Radio value="4000">3</Radio>
<Radio value="5000">4</Radio>
</RadioGroup>
但是,是的,將name="distance"asRadioGroup的屬性不再重要了。如果我們只需要 的一些屬性event.target,但仍然希望它們能夠盡快添加對完整事件對象的訪問權限,則可以使用。
添加回答
舉報