从父级未定义事件触发子级功能

时间:2018-07-23 09:34:58

标签: javascript react-native

我是React Native的新手,请原谅我缺乏的知识。

我想在孩子内部调用一个函数,但由父事件(在此处为onScroll)触发。

return (
    <View
        ref={ref => { this.split = ref; }}
        "onParentScroll"={() => {
        this.split.measureInWindow((x, y, height, width) => {
            console.log('X : ' + x)
            console.log('Y : ' + y)
    })}}>
        {childrenWithProps}
    </View>
)

通过这种方式,我不能直接在父scrollView上设置onScroll。 我的目标是在同一个scrollView中具有多个此组件。

2 个答案:

答案 0 :(得分:1)

您可以像这样将对父母的引用作为对孩子的支持:

<ChildComponent parent={this} />

然后从孩子那里更新父母的状态,将对孩子本身的引用传递给孩子,就像这样:

this.props.parent.setState({ child1: this });

最后,在父级中,您可以根据需要处理更新的信息,如下所示:

this.state.child1.callAnyMethod();

答案 1 :(得分:0)

最简单的方法是发送布尔状态作为prop并将其切换为onScroll。

  <ScrollView
    	onMomentumScrollBegin={() => { this.setState({ scroll : !this.state.scroll });}}
	onMomentumScrollEnd={() => { this.setState({ scroll : !this.state.scroll });}}>
      		<Trigger trig={ this.state.scroll }><Text>oui</Text></Trigger>
</ScrollView>