react-native - 如何通过组件实现回调
问题描述
基本上,当它打开时,我单击该堆栈的其他页面,如果在第二个页面内按下特定按钮,我想实现一个回调来更新页面。我的问题是,导航到第二页的按钮位于在第一页上呈现的组件内,如下所示:
主页
<FlatList
style={styles.listView}
contentContainerStyle={styles.listContentView}
data={availableJobs}
keyExtractor={service => service.id.toString()}
renderItem={({item}) => <CompleteCalls style={styles.listItem} job={item}/>}
showsHorizontalScrollIndicator={false}
ListEmptyComponent={<MyEmpty />}
horizontal
/>
CompleteCalls 我有导航到第二页的按钮:
<TouchableOpacity
style={styles.buttonContainer}
onPress={() => Navigator.navigate('ServiceDetails', {job} )}>
<MyText style={styles.button}>Resumo</MyText>
<MyIcon style={styles.resumeIcon}>{Icons.CHEVRON_RIGHT}</MyIcon>
</TouchableOpacity>
所以基本上,我通过主页调用CompleteCalls组件内的ServiceDetails页面。
在ServiceDetails中,我渲染了另一个组件,即一个按钮,以执行一个功能。
<ActionButton job={job}/>
这个ActionButton只是呈现一个按钮并具有一个功能。
在ServiceDetails中,我可以直接返回主页。
当我单击ActionButton时,如何通过所有这些传递回调?当我点击按钮返回时,我需要更新主页,但当我转到其他页面时不需要更新,所以监听器很烦人,因为它在每次交互后重新加载页面。
解决方案
推荐阅读
- php - 如何自定义条带订阅支付描述字段
- javascript - 箭头函数中的组件重新渲染
- r - 如何使用 API(使用 R & httr)
- python - AttributeError:部分初始化的模块“youtube_dl”没有属性“YoutubeDL”(很可能是由于循环导入)
- intellij-idea - 如何为新更改禁用更改列表指示器
- android - 如何在 Android 应用程序的登录屏幕(注册、登录等)上设置标题标题和后退按钮(使用 Java)
- c# - 如何从文件中读取并将此特定文件文本转换为
字典 - winapi - 在 Windows 中显示 mgmt 的规范方法:User32 还是 DXGI?
- flutter - Flutter:如何在 TextField 中添加项目符号点?
- docker - SSL 握手异常:没有适当的协议(协议被禁用或密码套件不合适);