У меня есть компонент Profile, который проверяет, передал ли пользователь в параметрах url. Если нет, компонент Profile будет отображаться с использованием текущего вошедшего в систему пользователя. Если это так, он извлечет это значение и использует этот идентификатор пользователя для формы профиля.
Все оказывает. И в конечном итоге появляются правильные профили, однако, если пользователь переходит к другому идентификатору пользователя для просмотра, форма сначала отображает свой собственный профиль ... ПОТОМ отображает переданного пользователя.
Я довольно уверен, что проблема в том, что реквизит не был установлен во время первого рендера. Мой вопрос, как я могу предотвратить это?
Я использую реагирующий маршрутизатор 4.0. Я настраиваю родительский дочерний компонент, пытаясь выполнить условный рендеринг ... кажется, ничто не помогает.
Моя родительская функция рендеринга выглядит так:
{this.props.match.params.userId && (
<ProfileForm
key={this.props.match.params.userId}
profileId={this.props.match.params.userId}
/>
)}
{!this.props.match.params.userId && <ProfileForm />}
Мое утверждение маршрута таково:
<Route exact={true} path={routes.PROFILE} component={Profile} />
<Route path={`${routes.PROFILE}/:userId`} component={Profile} />
Есть ли способ предотвратить загрузку «непропорциональной» версии в первую очередь или мне нужно создать новый компонент для «других» и сначала проложить маршрут?