微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单选按钮onclick,它在console.log上显示,带有React Hooks的先前按钮值

如何解决单选按钮onclick,它在console.log上显示,带有React Hooks的先前按钮值

我有4个单选按钮输入,单击任何一个按钮后console.log不会显示所选/当前按钮的值,而单击下一个单选按钮,console.log将显示一个按钮的值,依此类推...尽管在表单提交中,但它会提交正确的值。有人可以帮忙吗?我的组件在下面的React中表示感谢

import React,{ useState } from 'react'
import RadioButton from './RadioButton'

const StepTwo = props => {

const [selected,setSelected] = useState({})

const handleOnChange = e => {
    setSelected({ selected: e.target.value })
    console.log(selected)
}

const handleFormSubmit = e => {
    e.preventDefault();
    setSelected({ selected: e.target.value })
    console.log("You have submitted:",selected);
    props.history.push("./step-three");
}

return (
    <>
        <form onSubmit={handleFormSubmit}>
            <div className="radioGroup">
                <RadioButton
                    changed={handleOnChange}
                    id="op1"
                    isSelected={selected === "Smaller than average"}
                    label="Smaller than average"
                    value="Smaller than average"
                    name="diet"
                />
                <RadioButton
                    changed={handleOnChange}
                    id="op2"
                    isSelected={selected === "Average"}
                    label="Average"
                    value="Average"
                    name="diet"
                />
                <RadioButton
                    changed={handleOnChange}
                    id="op3"
                    isSelected={selected === "Larger than average"}
                    label="Larger than average"
                    value="Larger than average"
                    name="diet"
                />
                <RadioButton
                    changed={handleOnChange}
                    id="op4"
                    isSelected={selected === "Not at all"}
                    label="Not at all"
                    value="Not at all"
                    name="diet"
                />
                <button className="btnComponent" type="submit">Next question</button>
            </div>
        </form>
    </>
)
}
export default StepTwo

还有我的收音机 按钮组件在这里

const RadioButton = props => {

return (
    
    <div className="radioGroup">
        <input
            id={props.id}
            onChange={props.changed}
            value={props.value}
            type="radio"
            name={props.name}
          
        />
        <label
            htmlFor={props.id}
            id={props.id}>
            <span>{props.label}</span>
        </label>
    </div>
);
}

export default RadioButton;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。