【发布时间】:2017-11-18 17:13:53
【问题描述】:
我正在尝试创建一个添加工具提示的 HOC(以后可以更可重用)。我已经使用其他方法提出了一些可行的解决方案,但我想让它尽可能简单易用。
基本上,我想知道是否有任何方法可以强制我的<Div /> 组件在不将{props.children} 添加到<Div /> 的情况下渲染其子组件。如果能以某种方式做到这一点,那么我将来真的可以做得更好。
import { nest } from 'recompose';
const Tooltip = () => <div style={{ position: 'absolute', top: 0, left: 0, height: '20px', width: '20px', backgroundColor: 'red' }} />;
const Div = (props) => {
console.log(props);
return (
<div
style={{
backgroundColor: '#F2F2F2',
height: '400px',
}}
>
<h1>content here</h1>
</div>
);
};
const DivWithTooltip = nest(Div, Tooltip);
【问题讨论】:
-
你为什么不想写
{props.children}?你想渲染孩子,你必须明确地写出来。 -
@Isaddo 好吧,我想创建某种助手,它只是为组件添加一些悬停效果,例如添加工具提示。我可以通过将组件包装在
<Hover>组件中来干净地做到这一点,但我只是想看看是否可以使用干净的 HOC。这样我就可以说Component = withHover(Component, TooltipComponent)或类似的东西。
标签: javascript reactjs recompose