Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 5x 5x 5x 4x 24x 4x 1x 5x | import { DependencyList, useMemo } from 'react' /** * 获取类名字符串。 * * @public * @param getClassValues 获取类名列表函数 * @param deps 当依赖变更时重新获取 * @returns 返回类名字符串 * @example * ```typescript * const [mini, setMini] = useState(true) * const buttonClassName = useClassName(() => [ * 'ui-btn', * mini && 'ui-btn_mini', * ], [mini]) * console.log(buttonClassName) // => 'ui-btn ui-btn_mini' * setMini(false) * console.log(buttonClassName) // => 'ui-btn' * ``` */ export function useClassName( getClassValues: () => any[] | undefined, deps: DependencyList, ): string | undefined { const className = useMemo(() => { const classValues = getClassValues() if (classValues) { const validClassValues = classValues.filter( value => typeof value === 'string' && value !== '', ) return validClassValues.length ? validClassValues.join(' ') : undefined } return undefined }, deps) return className } |