React通知父项滚动的所有子项

时间:2016-01-14 19:38:33

标签: reactjs

我有一个名为Conversation的React组件,它可能会渲染很多部件。我需要每个部分知道对话是否滚动。这有可能,如果是这样的话?

class Conversation extends Component {
  handleScroll() {
      console.log('Each Part should be told that I just fired');
  }
  render() {
    <div className="conversation" onScroll={this.handleScroll.bind(this)}>
       <Part />
       <Part />
       <Part />
    </div>
  }
}

1 个答案:

答案 0 :(得分:0)

父组件应始终通过道具将信息传递给子组件,例如:

<Part someProp={this.getPartProps()} />

因此,要弄清楚每个Part组件需要哪些信息,并提供它。

编辑:

要从事件处理程序传播该信息,您需要使用组件本地状态:

handleScroll: function() {
    this.setState({scrollFired: true});
}

然后你可以在Part:

上设置道具
<Part scrollFired={this.state.scrollFired} />