React组件会短暂呈现错误的数据

时间:2019-04-21 15:33:12

标签: reactjs typescript react-router

我有一个Profile组件,用于检查用户是否传入了url参数。如果不是,则Profile组件将使用当前登录的用户进行渲染。如果这样做,它将拉出该值并将该用户ID用于“个人资料”表单。

一切都呈现。最终会出现正确的配置文件,但是,如果用户传递不同的用户ID进行查看,则表单将首先呈现自己的配置文件...在呈现传递的用户时。

我非常有信心,这是在第一次渲染时未设置道具的问题。我的问题是如何防止这种情况?

我正在使用React Router 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} />          

是否有办法阻止它首先加载“非支撑”版本,还是我必须为“其他”创建一个新组件并首先使路由到达那里?

0 个答案:

没有答案