问题
我有一个Stack Navigator。当我从页面A切换到页面B(使用相同的ImageBackground
组件)时,下一个屏幕会立即显示,但没有背景图片。仅在大约1-2秒后才会出现。我使用背景图片(您无法使用react-native
完成的复杂渐变,因此我将其作为图像导出到应用程序的每个页面上,因此我创建了一个名为Container
的组件,该组件只导出了一个ImageBackground
传入的背景图片。看起来像这样:
const BackgroundImageContainer = styled.ImageBackground`
justify-content: space-between;
flex: 1;
`;
const Container = ({children}) => (
<BackgroundImageContainer
source={require('../assets/Background.png')}
style={{flex: 1, width: null, height: null}}>
{children}
</BackgroundImageContainer>
);
我还有一个标签栏,当我切换到其他标签时,屏幕“闪烁白色”,因为我看到白色背景一秒钟,然后显示了实际的背景图像。
我认为这与图像的加载时间有关(尽管只有160KB)。 在应用启动时如何加载该图像,然后“缓存”它以便所有组件“即时”使用?