React HOC,instanceof,包裹着?

时间:2017-10-11 21:11:30

标签: reactjs redux

我使用HOC和Redux的compose方法将组件包装在组件中。一个简单的例子:

const Textinput = class Textinput extends Component {
   ...
}

export default compose(
  Theme,
  Validator,
)(Textinput);

反应所呈现的结果是:

<theme>
  <validator>
    <textinput />

想象一下这个孩子的另一个组成部分:

<Textinput />
<span>Test</span>
<Select />
<br/>

Textinput和Select包含在带有HOC的Theme / Validator组件中。我想枚举这个组件中的每个元素:

const children = React.Children.map(this.props.children, (child) => {

} 

但是:

  1. 如何知道渲染元素是否包含在特定组件中(如Validator或Theme)?

  2. 如何知道元素背后的组件是否是Select或Textinput(而不是Theme)的实例?

1 个答案:

答案 0 :(得分:0)

另一个解决方案是在每个HOC对象上添加一个新属性,如:

$result