Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的react组件一直在重新渲染?_Javascript_Reactjs_Lifecycle - Fatal编程技术网

Javascript 为什么我的react组件一直在重新渲染?

Javascript 为什么我的react组件一直在重新渲染?,javascript,reactjs,lifecycle,Javascript,Reactjs,Lifecycle,我试图将tockify日历嵌入到我正在构建的react项目中的组件中。我应该注意,我正在使用一个名为react script tag的库,它允许我在组件中使用标记。 无论如何,日历正在渲染,但随后继续重新渲染,就好像它卡在某种循环中一样。我觉得我需要实现某种生命周期方法。有什么建议吗?代码如下: import React from 'react' import Nav from './Nav' import ScriptTag from 'react-script-tag' class Eve

我试图将tockify日历嵌入到我正在构建的react项目中的组件中。我应该注意,我正在使用一个名为react script tag的库,它允许我在组件中使用
标记。 无论如何,日历正在渲染,但随后继续重新渲染,就好像它卡在某种循环中一样。我觉得我需要实现某种生命周期方法。有什么建议吗?代码如下:

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
从“React”导入React
从“./Nav”导入导航
从“反应脚本标记”导入脚本标记
类事件扩展了React.Component{
render(){
返回(
)
}
}
导出默认事件

关于“react脚本标签”的文档中说

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

每次组件再次装载时,都会附加标记。 今后有计划防止这种情况发生。 您可能希望使用纯组件来防止重新招标


编辑:无论我的答案是什么,您都应该显示代码的其余部分,以便能够检测问题。

使用React.PureComponent而不是React.Component,因为React.PureComponent会阻止在没有需要或更新的情况下重新渲染。

很难从这段小代码中找到任何实质性内容。此处仅显示可能导致重新渲染的导航组件。