我想创建一个带有图像的滚动条,链接位于数组LINKS中。这是在课堂上完成的。
如果我只使用uri:"http://something.jpg"
创建一个图像,它可以完美地工作,但是这里有一个" undefined不是一个对象"将导航器添加到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()的东西。
答案 0 :(得分:2)
将this
的范围绑定在地图功能中:
LINKS.map(function(val){
}.bind(this));
有关bind
的更多信息:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind
顺便提一下,如果您在此处使用了胖箭头,就像使用onPress回调一样,那么您已经避免了这个问题,因为this
的范围是自动设置的。