结构
ScreenContainer.js
|
|---Header.js
| |---LogoButton.js
|
|----FeedContainer.js
|---Feed.js
我在FlatList
Feed.js
单击LogoButton时,我想scrollToOffset()
Feed
。
ref
的{{1}}仅存在于FlatList
如何从Feed.js
?
Feed.js
方法
编辑:我尝试将LogoButton.js
存储在Redux中,但它导致多个事件发送和ref
错误
答案 0 :(得分:1)
这里可能有多个解决方案,但可能因为您使用的是Redux,您可以执行以下操作:
Logo.js
发送操作,将某些状态变量isLogoPressed
设置为true。FeedContainer.js
向商店注册,并将isLogoPressed
道具传递给Feed.js
。Feed.js
的{{3}}生命周期方法中检查isLogoPressed
是否为真并触发ScrollToOffset()
函数。isLogoPressed
重置为false的操作。无论您使用何种屏幕,无论何时按下徽标,都可以灵活地进行自定义行为。
希望这有帮助。
答案 1 :(得分:0)
您可以在按钮中使用回调函数,只需通过道具传递函数并调用它。
实施例: 在饲料上
<LogoButton callback={this.scrollToOffset} />
按钮中的只需使用onPress={this.props.callback()}