【问题标题】:Better alternative to shouldComponentUpdate更好的替代 shouldComponentUpdate
【发布时间】:2017-02-08 23:23:12
【问题描述】:

我在我的项目中使用 react motion 来制作动画。我通过维护状态解决了每次 prop 更改时渲染动画的问题。

const {animation} = this.state;
        if (animation) {
            return (
                 // updates state upon animatioon to false
                 <Animator rest={this.rest}> 
                    {this.getContent()}
                </Animator>
            );
        }
        return this.getContent();

我有一个回调,它将在动画完成后改变我的状态。这解决了除了动画时道具变化之外的所有问题。

假设我的动画发生了 2 秒,然后触发回调,但如果动画在中间像 1 秒并且我的道具发生变化,那么我的动画再次从头开始。

我不想使用shouldComponentUpdate,因为它会停止更新视图。

那么这种情况通常是如何处理的。用shouldComponentUpdate可以吗。有没有更好的选择?

提前致谢。

【问题讨论】:

  • 您是否使用componentWillReceiveProps 来处理道具更改?还是直接绑定到道具?
  • @BradBumbalough 上面的代码在我的渲染函数中,当我的道具改变时渲染

标签: javascript animation reactjs web browser


【解决方案1】:

如果动画组件在这个组件中渲染(名称为A),每次重新渲染A时都会从头开始。因此,我认为您可以在另一个组件 (B) 中渲染动画组件,该组件是 A 的 sibling 并且位于 A 上方且具有透明背景,或者仅将动画组件用作兄弟组件。 A 和 B 可以通过它们的 parent 或 redux 进行通信。

【讨论】:

    猜你喜欢
    • 2021-06-30
    • 1970-01-01
    • 2016-01-24
    • 2013-09-05
    • 2021-03-09
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多