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

[React Typescript 2022] Type a Radio Button Component in React using TypeScript

Our Radiocomponent file contains several compound components to create a related group of radio inputs. The RadioGroupContext is receiving a type of any currently.

This is a great example to peer into how Strict mode works. To see the difference between the strict mode's true and false setting, we will set strict to true. This will change our RadioGroupContext to be of type null which will raise some issues later down the line where trying to destructure an object that might be null.

This also gives us the opportunity to better our application with error handling. I will write out a couple of custom hooks to help out with that.

interface RadioGroupContentValue {
    checked: string | null | undefined;
    onChange(value: string): void;
    name: String;
}
const RadioGroupContext = React.createContext<RadioGroupContentValue | null>(
    null
);

...

let { checked, onChange, name } = useRadioGroupContent("RadioGroup");
...
function useRadioGroupContent(name: string) {
    let ctx = React.useContext(RadioGroupContext);
    if (!ctx) {
        throw Error(`A ${name} was rendered outside a RadioGroup Component`);
    }

    return ctx;
}

 

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

相关推荐