невозможно использовать collection.where () в собственном ответе из-за ошибки - PullRequest
0 голосов
/ 12 июля 2020

Я пытался запросить идентификатор документа. У меня есть имя документа, и я использую .where (), однако он продолжает показывать ошибку «Функция Query.where () требует допустимого третьего аргумента, но он не определен»

componentDidMount(name){
        console.log(name)
        dbh.collection('Groups').where("id", "==", name).get()
        .then(querySnapshot => {
            querySnapshot(doc => {
                this.setState({
                    docID: doc.id
                })
            })
        })

render(){
this.componentDidMount(this.props.route.params.groupName)
return (this.state.docID)
}

обратите внимание, что когда я использую имя журнала консоли в функции componentDidMount (), я получаю имя

1 Ответ

1 голос
/ 12 июля 2020

componentDidMount () вызывается сразу после монтирования компонента React.

попробуйте таким образом

setDocID(name){
     console.log(name)
     dbh.collection('Groups').where("id", "==", name).get()
     .then(querySnapshot => {
         querySnapshot(doc => {
            this.setState({
                docID: doc.id
            })
          })
      })
}

внутри componentDidMount() вызовите указанную выше функцию

componentDidMount(){
    this.setDocID(this.props.route.params.groupName)
}

в функции render() вы не можете отобразить текстовое значение без оболочки с компонентом Text. На верхнем уровне импортируйте текстовый компонент из react-native и обертывает возвращаемое значение.

render(){
   return <Text>{this.state.docID}</Text>
}
...