【发布时间】:2018-10-24 08:17:02
【问题描述】:
我认为这是一个非常烦人的错误,感觉没有解决方案,但我想分享和询问.. 我从服务器获取数据并从那里获取图像源,并在我的移动反应中使用相同的图像路径-原生应用。
我像这样从服务器获取数据:
$id = $request->userid;
$items = DB::table('item_user')->where('user_id', $id)->latest()->get();
$new = new Collection();
foreach($items as $item){
$new[] = array(
... ,
'picturePath' => 'require'."('./". $item->picturePath ."')"
);
}
return $new;
在前端我尝试渲染并且我在本地拥有这些图像。所以当我在本地使用它时:
需要('./images/...')
它有效.. 但像这样它不起作用:
_renderItem = ({item}) => {
return(
<View>
<Image source={ item.picturePath } style={{width: 15, height: 15}}/>
</View>
);
};
render(){
return(
<View>
<FlatList
data={this.state.items}
renderItem={this._renderItem}
keyExtractor={this._keyExtractor}
/>
</View>
);
}
我得到error,我该如何解决这个问题:
警告:道具类型失败:提供给“图像”的道具“来源”无效。
【问题讨论】:
-
react-native 不能在运行时需要静态资源。它必须在构建时。
-
是您的 item.picturePath 包含 http 的完整路径吗?
-
不,它像 require('./images/.../..') 并且我在本地拥有这些图像。因此,当我像 require('./images/...') 一样在本地使用它时,它可以工作..
标签: reactjs react-native