首页 > 解决方案 > 从父未定义事件触发子函数

问题描述

我是 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。我的目标是在同一个滚动视图中拥有几个这样的组件。

标签: javascriptreact-native

解决方案


您可以将对父级的引用作为道具传递给子级,如下所示:

<ChildComponent parent={this} />

并从孩子那里更新父母的状态,将a引用传递给孩子本身,如下所示:

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

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

this.state.child1.callAnyMethod();

推荐阅读