将参数传递给Firestore集合

时间:2019-06-21 17:19:21

标签: reactjs react-native react-navigation react-native-firebase

我想知道当从一页导航到另一页时,是否有可能将params之类的busstop传递给this.ref = firebase.firestore().collection(params)来访问不同的集合。如果没有,我该如何实现呢?

第1页-用户可以选择要从Firebase Firestore检索数据的内容。

Page1.js

onPress () = > this.props.navigation.navigate('page2',{locations: 'busstops' })


onPress () = > this.props.navigation.navigate('page2',{locations: 'taxis' })

page2

import {View,Text} from 'react-native';

const collectionid = this.props.navigation.state.params.location
const location = collectionid ? params.location : null;


export default class HomeDetail extends Component {
    constructor(props) {
        super(props);
        this.ref = firebase.firestore().collection(location);

        this.state = {

            },

        };
    }

1 个答案:

答案 0 :(得分:2)

如果我正确理解了您的问题,那么这是一个react-navigation问题,而不是Firestore问题。请检查此链接:

https://reactnavigation.org/docs/en/navigation-prop.html#getparam-get-a-specific-param-value-with-a-fallback

从文档中

  

过去,您可能遇到过以下可怕的情况:   未定义params时访问参数。而不是访问   直接进行参数设置,您可以改为调用getParam。

他们将其更改为:

const { location } = this.props.navigation.state.params.location;

const location = this.props.navigation.getParam(paramName, defaultValue);

因此,请尝试在您的代码中使用它:

const collectionid = this.props.navigation.getParam('location');