我在使用RN 0.33和NavigationExperimental进行平滑过渡方面遇到了问题。我认为问题在于渲染的场景渲染相对昂贵,而NavigationExperimental保留了两个场景以进行过渡。我想知道优化这个过程的好策略是什么。
到目前为止,我所做的是有一个“动画片”。导航组件中的状态,它将场景组件的shouldComponentUpdate设置为false。
答案 0 :(得分:1)
我遇到了这个问题,转换中丢帧的原因是数据的提取以及我转换到的组件的componentDidMount中的后续渲染。
您可以在componentDidMount中使用InteractionManager,以便您的提取代码仅在任何动画或转换完成后运行。
例如:
import { InteractionManager } from 'react-native'
componentDidMount() {
this.interaction = InteractionManager.runAfterInteractions(() => {
performExpensiveFetch()
})
}
componentWillUnmount() {
if(this.interaction) this.interaction.cancel()
}