【发布时间】:2020-04-29 06:32:34
【问题描述】:
是否可以导入图像并在<Image /> 组件的source 中使用它们?
我有很多地方需要根据状态有条件地显示图标或其他图标。 例如:
{isToggled ? (
<Image
resizeMode='contain'
source={require('../../assets/images/icon_chevron_up_B82BF9.png')}
style={styles.toggleArrowImage}
/>
) : (
<Image
resizeMode='contain'
source={require('../../assets/images/icon_chevron_down_B82BF9.png')}
style={styles.toggleArrowImagew}
/>
)}
或者
const getToogleImageSource = () => {
if (isToggled) {
return require('../../assets/images/icon_chevron_up_B82BF9.png')
}
return require('../../assets/images/icon_chevron_down_B82BF9.png')
}
...
<Image
resizeMode='contain'
source={getToogleImageSource()}
style={styles.toggleArrowImagew}
/>
查看React Native documentation on Image,并在 StackOverflow 上搜索此内容,我总是看到使用require 获取源代码的解决方案。
因此我的问题是关于使用 ES6 导入来减少代码行数(我也发现它更易于阅读):
import chevronDown from ('../../assets/images/icon_chevron_down_B82BF9.png')
import chevronUp from ('../../assets/images/icon_chevron_up_B82BF9.png')
...
<Image
resizeMode='contain'
source={isToggled ? chevronUp : chevronDown}
style={styles.toggleArrowImagew}
/>
我在本地对其进行了测试,它运行良好,所以我想知道这是否会由于打包程序或我忽略的原因而导致独立应用出现问题。
仅供参考,我在 app.json 中有这个:
"assetBundlePatterns": [
"assets/images/*"
],
感谢您的帮助。
[编辑]:我忘了说我正在使用 Expo
【问题讨论】:
标签: javascript image react-native es6-modules