Я пытаюсь отобразить страницу профиля, используя данные, полученные из 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);