Sam*_*mmy 2 typescript reactjs react-forwardref
我有以下组件来决定是否应根据用户权限呈现组件:
const Can = forwardRef(({ requiredPermissions, children }, ref): null | JSX.Element => {
const {
user: { role },
userPermissions,
} = useAuth();
return userHasPermission(role, userPermissions, requiredPermissions) ? children : null;
});
export default Can;Run Code Online (Sandbox Code Playgroud)
我需要做的是将 传递给使用该组件时ref将在内部的子组件。Can
我怎样才能做到这一点?
是的你可以。但你还需要做两件事:
React.Children.only。React.cloneElement传递ref给孩子。const Can = forwardRef(({ requiredPermissions, children }, ref): null | JSX.Element => {
const {
user: { role },
userPermissions,
} = useAuth();
return userHasPermission(role, userPermissions, requiredPermissions)
? React.cloneElement(React.Children.only(children), {
ref,
})
: null;
});
export default Can;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3960 次 |
| 最近记录: |