2016-04-06 4 views
8

Я только начинаю с React-native и довольно хорошо разбираюсь в React для создания веб-приложений ... Я столкнулся с запутанной проблемой, которая никогда не возникала при работе с реакцией для Интернета.React-native failed propType для компонента изображения

В основном я представляю компонент, изображение которого динамически генерируется путем сопоставления массива объектов в его родительском компоненте.

export default class ImageComponent extends React.Component { 
    render() { 
    return (
     <Image source={this.props.source}/> 
    ); 
    } 
}; 

И его родительский компонент:

export default class MainComponent extends React.Component { 
    constructor(props) { 
    super(props); 
    this.state = { 
     images:[ 
     { src: './src/images/1.png'}, 
     { src: '/src/images/2.png'}, 
     { src: './src/images/3.png'} 
     ] 
    } 
    } 

    render() { 
    let images = this.state.images.map((image) => { 
     return(<ImageComponent source={image.src} />); 
    }) 

    return (
     <View> 
     {images} 
     </View> 
    ); 
    } 
}; 

В тренажере устройства я получаю следующее сообщение об ошибке:

«Предупреждение: Не удалось propType: Invalid пропеллер 'источник', подаваемое«Image 'проверить метод рендеринга' BasicComponent ''

Имеет ли вы знаете, что здесь может быть?

ответ

16

Вы должны либо потребовать локальные активы, либо использовать объект с ключом uri.

Так как в MainComponent:

this.state = { 
    images:[ 
    require('./src/images/1.png'), 
    require('./src/images/2.png'), 
    require('./src/images/3.png') 
    ] 
} 

или BasicComponent:

return (
    <Image 
    source={{uri: this.props.source}} 
    /> 
); 
+0

Требуя местные активы были путем спасибо за вашу помощь @zvona – Maxwelll

+1

Uri собственности в исходном реквизите работать меня. требуемого метода нет. Любая идея о том, почему? – JaysQubeXon

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