繁体   English   中英

react-spring:过渡组件问题

[英]react-spring : Transition component issue

我正在使用 react-spring,Transition 渲染道具组件。

我面临一个边缘情况,即使在通过 setState() 更新项目之后,组件中使用的项目也会显示旧值并向其附加新值。

我期待一种行为,其中项目应该重新呈现 Transition 组件中的项目列表。

知道我可能会错过什么吗?

<ul>
  <Transition
    items={randomFeeds}
    // keys={randomFeeds.map(item  => item.id)}
    keys={randomFeeds => randomFeeds.id}
    from={{ transform: 'translate3d(0, -40px, 0)', opacity: 0 }}
    enter={{ transform: 'translate3d(0,0,0)', opacity: 1 }}
    update={{ transform: 'translate3d(0,0,0)', opacity: 1 }}
    reset={true}
    unique={true}
  >
    {item => props => (
      <li style={props} key={item.id + item.riskCategoryId + item.riskCategory}>
        <RimeCard
          key={item.id + item.riskCategoryId + item.riskCategory}
          title={item.title}
          categoryId={item.riskCategoryId}
          category={item.riskCategory}
          link={item.link}
          isTimeline={true}
          date={item.publishDateString}
        />
      </li>
    )}
  </Transition>
</ul>

如果您想要项目更新,请确保您的 li 组件的键在更新之间不会更改。 因此,不要使用密钥: key={item.id + item.riskCategoryId + item.riskCategory}只需使用key={item.id}

您可能还想将 leave 属性添加到您的 Transition 中,例如: leave={{ transform: 'translate3d(0, 40px, 0)', opacity: 0 }}

如果这解决了您的问题,我不确定是否需要重新设置和独特。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM