2015-07-23 6 views
1

Я хочу создать полосу прокрутки с изображениями, ссылки на которые находятся в массиве LINKS. Это делается в классе.Как создать карту компонентов в React native

Если я делаю только одно изображение с uri:"http://something.jpg", он отлично работает, но здесь есть ошибка «неопределенный не объект» в строке, где я добавляю навигатор в ImageButton.

(Я пробовал использовать кнопки-навигатор или прямую функцию onPress, но ни один из них не работает).

{ 
     LINKS.map(function(val){ 
       return <ImageButton 
       uri={val} 
       navigator={this.props.navigator} 
       onPress={() => { 
         console.log(this.props.uri); 
         this.props.navigator.push({ 
          id:'image', 
          uri:this.props.uri, 
          sceneConfig: Navigator.SceneConfigs.FloatFromRight, 
         }); 
       }} 
      /> 
      }) 
    } 

Возможно, есть что-то, что я не понимаю об объекте array.map().

ответ

2

Bind объем this внутри вашей функции карты:

LINKS.map(function(val){ 

}.bind(this)); 

Более подробную информацию о bind:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind

Кстати, если бы вы использовали жир стрелку здесь, как вы делаете для ваш обратный вызов onPress, вы бы избежали этой проблемы, так как область this автоматически устанавливается.

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