使用router.back()传递参数

问题描述 投票:0回答:2

我正在使用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()
    };

我看不到任何解决方案。

javascript react-native expo expo-router
2个回答
1
投票

router.replace
代替
goBack()
怎么样。这样你就可以添加参数:
router.replace({pathname: 'some-path', params: {param: qrData }})


0
投票

来自 React Navigation 文档:将参数传递到上一个屏幕

要实现此目的,您可以使用

navigate
方法,如果屏幕已存在,则其作用类似于
goBack
。您可以通过
params
navigate
将数据传回

© www.soinside.com 2019 - 2024. All rights reserved.