2016-11-11 3 views
0

Каким-то образом местоположение моего изображения не найдено, загрузите его из реквизита.Невозможно загрузить изображение из реквизита

Это работает

let overview_bg = require('../../images/locaties/placeholder.png'); 
<Image source={overview_bg} style={styles.overview_bg}> 

Но когда я получаю URL из реквизита он не делает:

let overview_bg = require(this.props.image); 
<Image source={overview_bg} style={styles.overview_bg}> 

this.props.image имеет тот же URL, который дает мне ошибку:

Requiring unknown module "../../images/locaties/placeholder.png". If you are sure the module is there, try restarting the packager or running "npm install"

Я проверил URL-адрес несколько раз, это точно так же. Я также тестировал его в console.log

Опора дана из другого контейнера, который достает его из магазина.

+0

К сожалению, я забыл добавить расширение в первом примере –

+0

Кроме того, значение, которое я получаю от магазина является Аяксом значения, которое хранится в Redux-сохраняется. Я не уверен, что это может иметь какое-либо отношение к нему, поскольку оно уже сохраняется и ошибка, которую я получаю, знает, что значение является точным URL-адресом, который мне нужен. –

+0

Как указал Дэвид, require() работает только для статических ресурсов. Вероятно, вам нужно будет потребовать («something.jpg») в качестве props.image, а затем сразу установить

ответ

0

От React Native Image documentation:

Note that in order for this to work, the image name in require has to be known statically.

// GOOD 
<Image source={require('./my-icon.png')} /> 

// BAD 
var icon = this.props.active ? 'my-icon-active' : 'my-icon-inactive'; 
<Image source={require('./' + icon + '.png')} /> 

// GOOD 
var icon = this.props.active ? require('./my-icon-active.png') : require('./my-icon-inactive.png'); 
<Image source={icon} />