如何跳过/修改导航

时间:2019-07-12 16:55:43

标签: react-native navigation

我有一个很棒的stackNavigation。 3个屏幕:DeviceList / DeviceDetail / DevideAdd。正常路径为(1)DeviceList> DeviceDetail或(2)DeviceList> DeviceAdd> DeviceDetail。

但是,当用户使用路径(2)时,我希望DeviceDetail屏幕的后退按钮转到DeviceList。或暂时,将转到DevideAdd。

这是我的导航:

const DeviceStackNavigator = createStackNavigator({
    DeviceList: {
        screen: DeviceList,
    },
    DeviceDetail: {
        screen: DeviceDetail,
    },
    DeviceAdd: {
        screen: DeviceAdd,
    },
});

如何实现?

1 个答案:

答案 0 :(得分:0)

键属性“ goBack()”是动态生成的字符串,每次您导航到新的“ react-navigation”路径时都会创建该字符串。

因此,如果您想从DeviceDetail转到DeviceList,您要做的就是将DeviceAdd的密钥向下传递到DeviceDetail,然后调用{ {1}},并带有密钥。

DeviceAdd.js

goBack()

DeviceDetail.js

render() {
    const { state, navigate } = this.props.navigation;    

    return (
        <View>
            <Button title="Go to DeviceDetail" onPress={ () => {
                navigate('DeviceDetail', { go_back_key: state.key });
            }} />
        </View>
    );
}