reactjs – 为什么在我的页面在React Native中转换之前有一个白
发布时间:2020-12-15 20:20:30 所属栏目:百科 来源:网络整理
导读:我终于让我的页面过渡动画正常工作(它从屏幕的底部滑到顶部)但由于某种原因,在页面出现之前出现了一个空白的白色“加载屏幕”,它破坏了整个点滑动动画!有人可以告诉我如何摆脱这个白色的屏幕?! 请看我制作的视频:https://youtu.be/92XGji7L-RU const { h
我终于让我的页面过渡动画正常工作(它从屏幕的底部滑到顶部)但由于某种原因,在页面出现之前出现了一个空白的白色“加载屏幕”,它破坏了整个点滑动动画!有人可以告诉我如何摆脱这个白色的屏幕?!
请看我制作的视频:https://youtu.be/92XGji7L-RU const { height: deviceHeight } = Dimensions.get('window'); class OrdersScreen extends Component { constructor(props) { super(props); this.state = { offset: new Animated.Value(deviceHeight),}; } componentDidMount() { Animated.timing(this.state.offset,{ duration: 350,toValue: 0,}).start(); } closeModal() { Animated.timing(this.state.offset,toValue: -deviceHeight,}).start(Actions.pop); } searchOrders = searchTerm => { this.props.dispatch(searchOrdersWithStatus(this.props.orderStatus,searchTerm)) } render() { // default to Active Orders const status = this.props.orderStatus || ORDER_TYPE_DELIVERIES; let title = 'Order History'; if (ORDER_TYPE_DELIVERIES == status) { title = 'Orders'; } if (ORDER_TYPE_ISSUES == status) { title = 'Item Alerts'; } return ( <Animated.View style={[styles.wrapper,{ transform: [{ translateY: this.state.offset }] }]}> <OrderHeader title={title} enableBack={false} /> <FullWidthSearchBar placeholder='Search Orders' changeCallback={this.searchOrders} timeoutMillis={500} /> <OrderSummaryList orderStatus={status} /> </Animated.View> ); } } const styles = StyleSheet.create({ wrapper: { position: 'absolute',top: 0,bottom: 0,left: 0,right: 0,alignItems: 'center',justifyContent: 'flex-start' } }); 解决方法
您的< OrderSummaryList />组件可能从API加载数据 – 需要一些时间……初始渲染数据还没有准备好……渲染显示了”组件.这个“内容”是动画的……后来的数据到了,内容被重新渲染.
您可以尝试在启动时延迟动画 – 使用.delay(miliseconds)而不是componentDidMount()中的start().通过实验查找所需的时间 – 太短可以显示加载(慢速连接),太长时间看起来不响应应用程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |