代码之家  ›  专栏  ›  技术社区  ›  Josh Simon

为什么我的反应组件不断重新渲染?

  •  1
  • Josh Simon  · 技术社区  · 4 年前

    我正试图将tockify压延机嵌入到我正在构建的反应项目中的一个组件中。我应该注意到,我正在使用一个名为react-script标签的库,它允许我使用 <script/> 我的组件中的标签。 不管怎样,压延机正在渲染,但随后会继续重新渲染,就像它陷入了某种循环一样。我有一种感觉,我需要实现某种生命周期方法。有什么建议吗?代码如下:

    import React from 'react'
    import Nav from './Nav'
    import ScriptTag from 'react-script-tag'
    
    class Events extends React.Component {
    
        render() {
        return (
            <div>
                <Nav/>
                 <div data-tockify-component="calendar" data-tockify-calendar="hzevents2"></div>
                <ScriptTag isHydrating={false} data-cfasync="false" data-tockify-script="embed" src="https://public.tockify.com/browser/embed.js"></ScriptTag> 
            </div>
        )
        }
    }
    
    export default Events
    
    2 回复  |  直到 4 年前
        1
  •  1
  •   Ali Torki    4 年前

    使用React。使用PureComponent替代React。因为React。如果不需要或更新,PureComponent将阻止重新渲染。

        2
  •  1
  •   Serdar Sayın    4 年前

    “react-script标签”的文档说

    建议将Script标记放置在以下组件中 在应用程序的整个生命周期中只渲染一次。否则,一个新的

    每次再次安装组件时,都会附加标签。 未来有计划防止这种情况的发生。

    您可能希望使用纯组件来防止重新渲染。

    编辑:不管我的答案是什么,你都应该显示其余的代码,以便能够检测到问题。