首页 文章

在React中为子组件的部分动画

提问于
浏览
0

我很难理解React中的动画组件如何涉及子组件中的元素 . 为了设定舞台,我有:

  • 包含一些按钮的按钮组组件 .

  • 包含一些按钮组的导航组件 . 导航组件创建按钮名称和回调的数组,然后将它们作为道具传递给按钮组组件 .

让我们说用户在一个会改变导航的页面上采取一些行动 . 更具体地说,我想从导航中的一个按钮组淡出其中一个按钮 .

我很熟悉如何使用 ReactCSSTransitionGroup 并想在这种情况下使用它,但棘手的部分是导航组件是拥有动画触发器的东西,而按钮组组件是拥有按钮的东西需要褪色 . 当导航组件重新渲染时,它会从DOM中抛弃旧的按钮组并构建一个全新的按钮组,这意味着旧的按钮组永远不会有机会淡出其按钮 .

问题:

  • 我在这里使用了错误的抽象吗?如果我想基于导航状态淡出按钮,按钮是否必须属于导航而不属于某些子组件?

  • 当导航重新渲染并且新的道具被赋予按钮组时,为什么按钮组被破坏并重建而不是现有的只获得propsWillChange调用?

1 回答

  • 0

    你没错,听起来你的子按钮组组件不需要重新渲染 .

    如果您正在迭代一组名称/回调对来构建按钮,请确保为每个按钮赋予一个唯一的 key 属性;也许是名字,如果这是唯一的 . 这将使React能够识别要添加或删除哪些按钮以及将哪些按钮留在原位 .

    有了这个,你的 ReactCSSTransitionGroup 应该按预期工作 .

相关问题