UNPKG

crootfast

Version:

大前端工程化命令行脚手架

34 lines (25 loc) 854 B
import { useState, useEffect } from "react"; // Reference Type function isPrimitive(value) { return value === null || typeof value !== "object"; } export function usePrimitiveState(initialValue) { // if (!isPrimitive(initialValue)) { // throw new Error(`"useState"定义的值必须是基本类型!`); // } // const [value, setValue] = useState(initialValue); // function setPrimitiveValue(newValue) { // if (!isPrimitive(newValue)) { // throw new Error(`"useState"定义的值必须是基本类型!`); // } // setValue(newValue); // } // useEffect(() => { // if (!isPrimitive(value)) { // throw new Error(`"useState"定义的值必须是基本类型!`); // } // }, [value]); // return [value, setPrimitiveValue]; return useState(initialValue); } // export default usePrimitiveState;