Получение данных из магазина на основе URL - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь отобразить страницу профиля, используя данные, полученные из firestore, на основе содержимого URL. Например, когда пользователь вводит mywebsite/profile/someusername, я хотел бы получить информацию о профиле из базы данных firestore и отобразить компонент Profile. У меня есть магазин с избыточностью, который сохраняет состояние приложения, и у меня есть postReducer и authReducer и соответствующие действия. Когда я использую componentDidMount() метод жизненного цикла для первого рендера, когда пользователи go имеют собственную страницу профиля, она показывает информацию о них и их собственные данные. Но после ввода чужого имени пользователя в URL я получаю сообщения об ошибках типа cannot read property 'props' of undefined. Что было бы для меня хорошей стратегией для go? Любая помощь будет оценена. Мой код для Profile компонента:

class Profile extends Component {
    //component state and render method are removed to make some space

    componentDidMount() {
        this.props.getUserPosts(this.props.profile.username);
    }
}

const mapStateToProps = (state) => {
    return {
        auth: state.firebase.auth,
        profile: state.auth.profile,
        profileError: state.auth.profileError,
        userPosts: state.post.userPosts,
        userError: state.post.userError
    }
};
const mapDispatchToProps = (dispatch) => {
    return {
        getUserPosts: (username) => {
            dispatch(getUserPosts(username));
        },
        getProfile: (username) => {
            dispatch(getProfile(username));
        }
    }
};
export default connect(mapStateToProps, mapDispatchToProps)(Profile);

1 Ответ

0 голосов
/ 10 марта 2020

Это очень сильно зависит от того, как вы настроили FireBase в своем проекте, но вы просто получите доступ к FireStore в соответствии с их документацией. Я написал небольшой (хотя и малый, как я полагаю) пример к другому вопросу: Слушатель Firebase с React Hooks

Вы можете получить от него некоторое вдохновение.

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