1
我正在创建一个ReactJS组件,其中包含未知数量的子代和祖先,并且当某个事件发生在其中一个祖先时,父组件应该知道它。我的第一个方法是使用redux并发送一个redux动作的子组件,然后主要父组件将会收到警报,并检查发送的组件是否是其祖先之一。 但是,如果另一个组件是其祖先之一,那么父类是否可以反应JS组件?检查一个组件是否是另一个组件的子组件或祖先ReactJS
我正在创建一个ReactJS组件,其中包含未知数量的子代和祖先,并且当某个事件发生在其中一个祖先时,父组件应该知道它。我的第一个方法是使用redux并发送一个redux动作的子组件,然后主要父组件将会收到警报,并检查发送的组件是否是其祖先之一。 但是,如果另一个组件是其祖先之一,那么父类是否可以反应JS组件?检查一个组件是否是另一个组件的子组件或祖先ReactJS
家长可以定义在上下文中的功能,儿童可以调用这个函数:
家长:
childContextTypes: {
notifyChange: React.PropTypes.func.isRequired
},
getChildContext() {
return {
notifyChange: (...args) => this.handleChange(...args)
}
},
handleChange (arg) {
console.log(arg + ' bar!')
},
儿童:
contextTypes: {
notifyChange: React.PropTypes.func
},
handleSomething() {
const { notifyChange } = this.context
// safety check if component is used elsewhere
if (notifyChange) notifyChange('foo!')
},
非常感谢,我更新了过滤器以包含您的解决方案。 https://jsfiddle.net/shaibam/d0q5mwc4/35/ –
的唯一途径,我可以看到这个工作通过使用js/DOMelemt'contains'和React.findDOMelement。 https://jsfiddle.net/shaibam/d0q5mwc4/33/ –