Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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定期重新加载iframe的最佳方法是什么?_Javascript_Reactjs_Iframe - Fatal编程技术网

Javascript 什么';使用React定期重新加载iframe的最佳方法是什么?

Javascript 什么';使用React定期重新加载iframe的最佳方法是什么?,javascript,reactjs,iframe,Javascript,Reactjs,Iframe,我正在使用React构建一个网页,这意味着我不能直接操作DOM。我尝试通过更新url状态来重新加载iframe,但似乎无法重新加载页面。这是我试过的州代码 componentDidMount: function() { setInterval(function(){ this.setState({currentUrl:currentUrl}); }.bind(this), 1000); }, getInitialState: function() { r

我正在使用React构建一个网页,这意味着我不能直接操作DOM。我尝试通过更新url状态来重新加载iframe,但似乎无法重新加载页面。这是我试过的州代码

componentDidMount: function() {
    setInterval(function(){
        this.setState({currentUrl:currentUrl});
    }.bind(this), 1000);
},
 getInitialState: function() {
    return {defaultUrl:this.props.graph.url, currentUrl:this.props.graph.url};
},
render() {
    // render the graph iframe
    return (
        <iframe src={this.state.currentUrl} id={this.props.graph.url} style={this.props.style} width={this.props.width} height={this.props.graph_height} />
    )
}
componentDidMount:function(){
setInterval(函数(){
this.setState({currentUrl:currentUrl});
}.绑定(本),1000);
},
getInitialState:函数(){
返回{defaultUrl:this.props.graph.url,currentUrl:this.props.graph.url};
},
render(){
//将图形渲染为iframe
返回(
)
}

如果我假设iframe的内容不在react控制之下,那么这就是属性的用例。将一个应用于iframe,然后使用setInterval刷新iframe url


当您将URL设置为状态时,iframe没有更新的原因是URL没有更改(?),并且在这种情况下,react不会重新绘制。

如果我假设iframe的内容不受react控制,则这是该属性的一个用例。将一个应用于iframe,然后使用setInterval刷新iframe url


当您将URL设置为状态时,iframe没有更新的原因是URL没有更改(?),在这种情况下,react不会重新绘制。

更改组件的键属性 例如:

this.state = {iframeKey: 0};

setInterval(() => this.setState(s => ({iframeKey: s.iframeKey + 1})), 1000);

<Iframe key={this.state.iframeKey} url={some url}/>
this.state={iframeKey:0};
setInterval(()=>this.setState(s=>({iframeKey:s.iframeKey+1})),1000;

更改组件的键属性 例如:

this.state = {iframeKey: 0};

setInterval(() => this.setState(s => ({iframeKey: s.iframeKey + 1})), 1000);

<Iframe key={this.state.iframeKey} url={some url}/>
this.state={iframeKey:0};
setInterval(()=>this.setState(s=>({iframeKey:s.iframeKey+1})),1000;

使用
forceUpdate
将强制重新渲染():我已经尝试过了,但它没有做任何事情iframe仍然没有重新加载define“没有做任何事情”。对
forceUpdate
的调用保证在组件中调用
render
,这将需要重新绘制
iframe
。你能创建一个plunkr或codepen吗?它没有强制更新,也许我用错了。我刚刚替换了这个.setState({currentUrl:currentUrl});有了这个.forceUpdate(),那支笔就可以为我工作了!如果您放置一个
console.log('Rendering')
render()
函数的顶部(在
返回之前),您将看到它实际上会重新渲染。也许iframe本身的内容没有改变?但这将超出React的范围。使用
forceUpdate
将强制重新渲染():我已经尝试过了,但它没有做任何事情iframe仍然没有重新加载定义“没有做任何事情”。对
forceUpdate
的调用保证在组件中调用
render
,这将需要重新绘制
iframe
。你能创建一个plunkr或codepen吗?它没有强制更新,也许我用错了。我刚刚替换了这个.setState({currentUrl:currentUrl});有了这个.forceUpdate(),那支笔就可以为我工作了!如果您放置一个
console.log('Rendering')
render()
函数的顶部(在
返回之前),您将看到它实际上会重新渲染。也许iframe本身的内容没有改变?但这超出了React的范围。我也是这么想的,所以我一直在url末尾添加“1”,以查看它是否会更新到无效网站。iframe从未重新加载,但当我打开控制台时,我可以看到src属性正在更新,因此react正在操作元素,但iframe没有重新加载。这也是我的想法,因此我一直在url末尾添加“1”,以查看它是否会更新为无效网站。iframe从未重新加载,但当我打开控制台时,我可以看到src属性正在更新,因此react正在操作元素,但iframe没有重新加载。