【发布时间】:2018-01-31 03:43:19
【问题描述】:
我有一个名为 data.js 的文件,我在其中导出了一个对象,其中一个元素是图像。看起来是这样的:
var data = [
{
"id": 1,
"Category": "Category Title",
"Image": require("../images/comingsoon.png"),
"Summary": ""
},
然后在另一个组件中,我导入数据变量并使用 FlatList 将 data.Image 作为道具传递给另一个组件。
<FlatList
style={{margin:5}}
numColumns={2}
data={this.state.data}
renderItem={({item}) => item}
/>
item 看起来像这样:
<CategoryItem key={item.id} Image={item.Image} Category={item.Category}/>
然后我像这样在 CategoryItem 中使用 Image 道具:
<Image source={this.props.item.Image} style={styles.CategoryImage}>
而且效果很好!... 但我想像这样简单地将 Item 作为道具传递给 CategoryItem:
<CategoryItem key={item.id} item={item}/>
一旦进入 CategoryItem,我会这样做:
render(){
const {Category, Image} = this.props.item;
并通过执行来调用图像
<Image source={Image} style={styles.CategoryImage}>
但是,当我这样做时,应用程序崩溃并显示Image 是一个数字。
在记录item 的样子后,我发现require()ing 将图像转换为数字,它应该通过简单地传递它来工作,它崩溃了。有什么想法吗?
【问题讨论】:
-
你真的在使用 RequireJS 吗?如果不是,您应该删除该标签,因为 RequireJS 是一个特定的产品。如果您使用的是 RequireJS,那么您的问题需要编辑以提供解释您如何使用它的上下文(不,单个
require调用是不够的),因为没有理由相信它实际上是您的问题的一个因素.
标签: image react-native components