React中组件为componentDidMounted时如何获取输入值?

How to get input value when component is componentDidMounted in React?

我想在页面第一次启动时获取 RadioButton 属性(例如:第一次调用 componentWillMount() 时) 我将把这个问题与 JQuery.

进行比较
$(function() {
  var radioAttr = $('#radioButton_id').find("option:selected").val()
}); 

我想将 JQuery 源实施到 React Hooks。如果你知道怎么做,请帮助我..

const UserEdit = ({ classes, ...props }) => {

    const types = [
        {id:'INDIVIDUAL'},
        {id:'COMPANY'}
    ];

    const [ checked, setChecked ] = useState(true);

    const onClickRadioBtn = (event,id) => {
        (id === "COMPANY") ? setChecked(false) : setChecked(true)
    };

    useEffect(()=>{
        **/* get radioButton attr */**
    });

    return(
        <Edit {...props}>
            <SimpleForm>
                <TextInput source="username" validate={required()}/>
                <TextInput source="email" validate={[required(),email()]}/>
                <TextInput source="phoneNumber" validate={[required(),minLength(10),number()]}/>
                <RadioButtonGroupInput label="Type"
                                       source="userType"
                                       choices={types}
                                       optionText="id"
                                       validate={required()}
                                       onChange={onClickRadioBtn}
                />
                { !checked && (
                    <ReferenceInput label="Company" source="company.id" reference="companies" validate={required()}>
                        <SelectInput optionText="name"/>
                    </ReferenceInput>
                )}
            </SimpleForm>
        </Edit>
    );
};

RadioButtonGroupInput 包裹在 div 中并给 div 一个 ref 属性。我们还将创建一个名为 nodes 的新变量来存储元素

const UserEdit = ({ classes, ...props }) => {
    const nodes = {}

    const types = [
        {id:'INDIVIDUAL'},
        {id:'COMPANY'}
    ];

    const [ checked, setChecked ] = useState(true);

    const onClickRadioBtn = (event,id) => {
        (id === "COMPANY") ? setChecked(false) : setChecked(true)
    };

    useEffect(()=>{
         //get the element we passed, our input will be the first child
        let input = nodes.example.children[0] ? nodes.example.children[0] : null;
        console.log(input.getAttribute("type"));
    }, []);

    return(
        <Edit {...props}>
            <SimpleForm>
                <TextInput source="username" validate={required()}/>
                <TextInput source="email" validate={[required(),email()]}/>
                <TextInput source="phoneNumber" validate={[required(),minLength(10),number()]}/>

            <div ref={elem => (nodes["example"] = elem)}>
                 <RadioButtonGroupInput label="Type"
                       source="userType"
                       choices={types}
                       optionText="id"
                       validate={required()}
                       onChange={onClickRadioBtn}
                />
            </div>

            { !checked && (
                <ReferenceInput label="Company" source="company.id" reference="companies" validate={required()}>
                    <SelectInput optionText="name"/>
                </ReferenceInput>
            )}
        </SimpleForm>
    </Edit>
   );
};

这里有一个沙盒示例:https://codesandbox.io/s/romantic-mcnulty-qqpbs