[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;
}

 

相关文章

一、前言 在组件方面react和Vue一样的,核心思想玩的就是组件...
前言: 前段时间学习完react后,刚好就接到公司一个react项目...
前言: 最近收到组长通知我们项目组后面新开的项目准备统一技...
react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...