Неопределенный _this.props.navigation.getParam в пользовательском меню ящика - PullRequest
0 голосов
/ 17 апреля 2020

Я пытаюсь набрать token параметр, который отправляю от родительского компонента:

import React, { Component } from "react";
import {
  SafeAreaView,
  ScrollView,
  View,
  Image,
  Text,
  ImageBackground,
} from "react-native";

import firebase from "firebase";
import CustomDrawerMenu from "./CustomDrawerMenu";

class CustomDrawer extends Component {
  constructor(props) {
    super(props);
    this.user = firebase.auth().currentUser;
  }

  render() {
    return (
      <SafeAreaView style={{ flex: 1 }}>
        <View
          style={{
            height: 150,
            backgroudColor: "white",
          }}
        >
          <ImageBackground
            source={require("../assets/bg.jpeg")}
            style={{
              width: "100%",
              height: "100%",
              justifyContent: "center",
              alignItems: "center",
            }}
          >
            <Image
              source={require("../assets/profile.png")}
              style={{
                width: 100,
                height: 100,
                borderRadius: 60,
                borderColor: "white",
                borderWidth: 4,
              }}
            />
            <Text style={{ color: "white", marginTop: 10 }}>
              {this.user ? this.user.email : ""}
            </Text>
          </ImageBackground>
        </View>
        <ScrollView>
          <CustomDrawerMenu {...this.props} token={new Date()} />
        </ScrollView>
      </SafeAreaView>
    );
  }
}

export default CustomDrawer;

В customDrawerMenu Я пытаюсь получить токен с помощью this.props.navigation.getParam("token"), но выдается ошибка. Вот я пытаюсь добраться до него:

class CustomDrawerMenu extends Component {
    constructor(props) {
       super(props);
    }
    componentDidUpdate() {
        const currToken = this.props.navigation.getParam("token");
        if (currToken != this.lastToken) {
          this.lastToken = currToken;
          this.setState({ token: this.lastToken });
        }
      }
.....
}

Это ошибка:

this.props.navigation.getParam is not a function. (In 'this.props.navigation.getParam("token")', 'this.props.navigation.getParam' is undefined)

1 Ответ

0 голосов
/ 17 апреля 2020

Вы передали токен в реквизите

<CustomDrawerMenu {...this.props} token={new Date()} />

Итак, почему он должен быть внутри this.props.navigation?

Он доступен в this.props.token

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...