我正在使用expo-router,需要传回一些参数。如何做到这一点?
我这里使用路由器推送:
<TouchableOpacity style={styles.qrButton} onPress={()=> {router.push(`/rent-bike/qr-scanner`)}}>
<Text style={styles.qrText}>Użyj kodu QR</Text>
</TouchableOpacity>
然后我扫描二维码并希望将其传回以在同一页面上显示:
const handleBarCodeScanned = ({type, data}) => {
setScanData(true)
console.log(`data: ${data}`);
console.log(`type: ${type}`);
router.back()
};
我看不到任何解决方案。
用
router.replace
代替 goBack()
怎么样。这样你就可以添加参数:router.replace({pathname: 'some-path', params: {param: qrData }})
。
来自 React Navigation 文档:将参数传递到上一个屏幕
要实现此目的,您可以使用
方法,如果屏幕已存在,则其作用类似于navigate
。您可以通过goBack
和params
将数据传回navigate