我有一个包含来自库 react-native-progress 的 progress.circle 的组件(参见链接:https : //github.com/oblador/react-native-progress)。
最初,我将进度圈的进度道具设置为在空闲状态下设置为 0 的状态变量,如下面的代码所示:
<Progress.Circle
showsText={true}
progress={this.state.progress} // this.state.progress = 0
size={width * 0.1388888888888}
color={"#EF5D6C"}
/>
发生用户交互次数以将状态变量 (this.state.progress) 设置为某个百分比,然后组件重新渲染以按预期显示进度动画。
问题是由于重新渲染过程,组件闪烁了部分时间。那么有没有办法只重新渲染进度圈,而将组件的其余部分保留在当前的渲染形式中。
您可以尝试将 Progress.Circle 元素分离到一个不同的文件中,以便在它自己的渲染器中。
render() {
return (
<Progress.Circle
showsText={true}
progress={this.state.progress} // this.state.progress = 0
size={width * 0.1388888888888}
color={"#EF5D6C"}
/>
)
}
这样,当您更改 state 中的元素时,只有 progress.circle 应该重新渲染。然后你将它导入你的主文件并在那里调用它:
render(){
....
<ProgressCircle />
....
}
基本上渲染函数中的任何内容都会重新渲染。如果progress.circle 元素在状态改变的地方独立存在,据我所知,只有它应该重新渲染。
希望这在某种程度上有所帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句