加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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().通过实验查找所需的时间 – 太短可以显示加载(慢速连接),太长时间看起来不响应应用程序.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读