使用Navigation跳转时,如何从第二个屏幕传回选中的颜色值?
要实现从ColorPickerScreen将选中的颜色传回第一个屏幕,只需调整两处代码:
1. 修改ColorPickerScreen的onSelect方法
选中颜色后,先调用从第一个屏幕传递的回调函数传回颜色值,再执行跳转:
onSelect = (color) => { // 获取导航参数里的回调函数 const onSubmit = this.props.navigation.getParam('onSubmit'); // 将选中的颜色传入回调 onSubmit(color); // 跳转回第一个屏幕 this.props.navigation.navigate('CreatenewtTipul'); }
2. 修正第一个屏幕的回调逻辑
确保回调能正确接收并处理传回的颜色值:
<CustomButton style={styles.buttonPicker} darkMode={this.props.darkMode} title={'pick a color'} onPress={() => { this.props.navigation.navigate('ColorPickerScreen', { onSubmit: (selectedColor) => { // 这里可以处理传回的颜色,比如打印或保存到组件状态 console.log('选中的颜色:', selectedColor); // 示例:更新组件状态 // this.setState({ pickedColor: selectedColor }); }, }) }} ></CustomButton>
调整完成后,用户在ColorPickerScreen选择颜色时,颜色值会通过回调函数传递回第一个屏幕,再完成页面跳转。
内容的提问来源于stack exchange,提问作者Arik m
相关产品推荐
相关产品推荐

