Nativescript 设置平台特定属性后强制视图重画

Nativescript 设置平台特定属性后强制视图重画,nativescript,nativescript-vue,Nativescript,Nativescript Vue,我已经为我拥有的各种元素绘制了阴影: <template> <Page> <TabView> <TabViewItem title="Tab 1"> <StackLayout @loaded="addShadow"> <Label text="This box does have a shadow." />

我已经为我拥有的各种元素绘制了阴影:

<template>
    <Page>
        <TabView>
            <TabViewItem title="Tab 1">
                <StackLayout @loaded="addShadow">
                    <Label text="This box does have a shadow." />
                </StackLayout>
            </TabViewItem>
            <TabViewItem title="Tab 2">
                <StackLayout>
                    <Label text="This box doesn't have a shadow." />
                </StackLayout>
            </TabViewItem>
        </TabView>
    </Page>
</template>

<script>
    export default {
        methods: {
            addShadow(event) {
                if (event.object.ios) {
                    event.object.ios.layer.masksToBounds = false;
                    event.object.ios.layer.shadowOpacity = 0.5;
                    event.object.ios.layer.shadowRadius = 5.0;
                    event.object.ios.layer.shadowColor = new Color('#000000').ios.CGColor;
                    event.object.ios.layer.shadowOffset = CGSizeMake(0.0, 2.0);
                }
            }
        }
    }
</script>

<style scoped>

StackLayout {
    background: #ffffff;
    padding: 16;
    margin: 16;
}

</style>

导出默认值{
方法:{
addShadow(事件){
if(event.object.ios){
event.object.ios.layer.masksToBounds=false;
event.object.ios.layer.shadowOpacity=0.5;
event.object.ios.layer.shadowRadius=5.0;
event.object.ios.layer.shadowColor=新颜色('#000000').ios.CGColor;
event.object.ios.layer.shadowOffset=CGSizeMake(0.0,2.0);
}
}
}
}
堆垛布局{
背景:#ffffff;
填充:16;
保证金:16;
}
但是,虽然阴影看起来很完美,但它最初在第一次访问选项卡时不会出现。我必须首先访问第二个选项卡,只有在返回到第一个选项卡后,才会绘制阴影

我假设这是因为在添加阴影后,我需要调用一些东西来重新绘制图层,但我不知道如何做到这一点。我尝试了
event.object.ios.layer.setNeedsDisplay()
,但没有效果


如何确保阴影在第一个选项卡渲染时显示?

为什么不向这些选项卡添加条件CSS类?谢谢你的回复!如何解决我的问题?