gpt4 book ai didi

ios - React native - Webview 视频在父状态更改时重新加载

转载 作者:行者123 更新时间:2023-12-01 19:50:56 25 4
gpt4 key购买 nike

我有以下结构:

class Parent extends Component { 
state = { isHeaderCollapsed : false }

render() {
<ScrollView decelerationRate="fast" stickyHeaderIndices={isHeaderCollapsed && [0]} scrollEventThrottle={1} onScroll={(value) => this.setState({isHeaderCollpased: true})} style={styles.body}>
<JobHeader collapsed={isHeaderCollapsed} />
<WebView allowsInlineMediaPlayback={true} style={[styles.video, style]} javaScriptEnabled={true} source={{uri: mediaUrl}} />
</ScrollView>
}

在 iOS 上,每当我更改父组件的状态时,webview 中的 youtube 视频就会自行刷新。我不希望这种情况发生。
谢谢 !

最佳答案

您可以使用 shouldComponentUpdate检查是否需要重新渲染:

class Parent extends Component { 
constructor(){
super();
this.state = {
isHeaderCollapsed : false
}
}

shouldComponentUpdate(nextProps, nextState){
return nextState.isHeaderCollapsed !== this.state.isHeaderCollapsed;
}

render() {
<ScrollView decelerationRate="fast" stickyHeaderIndices={isHeaderCollapsed && [0]} scrollEventThrottle={1} onScroll={(value) => this.setState({isHeaderCollpased: true})} style={styles.body}>

<JobHeader collapsed={isHeaderCollapsed} />
<WebView allowsInlineMediaPlayback={true} style={[styles.video, style]} javaScriptEnabled={true} source={{uri: mediaUrl}} />

</ScrollView>
}

关于ios - React native - Webview 视频在父状态更改时重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45939813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com