2015-05-09 5 views
3

Я пишу простую программу iOS, чтобы показать изображение с помощью React Native.React Родной: загрузить

'use strict'; 

var React = require('react-native'); 
var { 
    Image 
} = React; 

var styles = React.StyleSheet.create({ 

    base: { 
    height: 400, 
    width: 400 
} 
}); 

class SimpleApp extends React.Component { 
    render() { 
    return (
    <Image 
    style={styles.base} 
    source={require('image!k')} 
    //source={{uri: 'http://news.xinhuanet.com/world/2015-05/09/127782089_14311512601821n.jpg'}} 
     /> 
    ) 
    } 
} 

React.AppRegistry.registerComponent('SimpleApp',() => SimpleApp); 

Но я получил сообщение от экрана IPad:

"Failed to print error:","'undefined' is not an object (evaluating 'stackString.split')" 

Когда я изменить код, чтобы использовать URL изображения

//source={require('image!k')} 
source={{uri: 'http://news.xinhuanet.com/world/2015-05/09/127782089_14311512601821n.jpg'}} 

Я только получить красную границу прямоугольника.

Когда я использую другой файл js, все работает хорошо. «Hello World» может отображаться на экране iPad.

'use strict'; 

var React = require('react-native'); 
var { 
    Text, 

} = React; 


class SimpleApp extends React.Component { 
    render() { 
    return (

     <Text>Hello World</Text> 

    ) 
    } 
} 

React.AppRegistry.registerComponent('SimpleApp',() => SimpleApp); 
+2

Сетевой '' загрузчик поддерживает только «png» прямо из того, что я могу сказать. 'jpg' поддерживается при загрузке изображения статически [ref] (https://github.com/facebook/react-native/blob/72c5e5d981a21ede12dcd76de5ca22a398c8bcaf/packager/packager.js#L203) ' source = {require ('image! k')} 'используется для загрузки изображения статически, измените' k' на имя вашего изображения, сохраненного локально, 'require' будет base64 ваш образ в приложении ' source = {{uri: 'http : // ... '}} 'используется для загрузки изображения из сети, вы загружаете jpeg, который пока не поддерживается, попробуйте загрузить png вместо – potench

ответ

5

Убедитесь, что используете последнюю версию React Native. С Реагировать Native 0.4.4 следующих работ:

Местных изображения

<Image 
    style={styles.base} 
    source={require('image!tabnav_settings')} 
    /> 

Также убедитесь, что вы добавили изображение, которое вы хотите использовать для ваших активов изображения:

Xcode Images.xcassets

Удаленное изображение

<Image 
    style={styles.base} 
    source={{uri: 'http://i.stack.imgur.com/DfkfD.png'}} 
    /> 
+0

Спасибо, это сработало для меня. – Tirth

+0

Также он подходит для Android. Если вы добавите свои изображения в папку с возможностью рисования, вы можете использовать их динамически. –

+0

@the_bluescreen, что относительно реагировать-родной 0.27.2. в этой версии нам больше не нужно помещать изображения в удобочитаемые. в разработке он работает нормально, но в производственных изображениях не загружается? любое предложение будет оценено благодаря –

2

Как отметил @potench в комментариях, загрузка статических изображений с расширением .jpg в настоящее время не работает. Но если вы просто переименуете свой jpg в png, все будет хорошо. См. Также https://github.com/facebook/react-native/issues/521

Смежные вопросы