反应原生。无法在地图功能中设置参考
问题描述:
我正尝试使用map
函数为每个组件创建一个ref
。反应原生。无法在地图功能中设置参考
这是我的组件:
class Foo extends Component {
constructor(props) {
super(props)
}
render() {
return (
<ScrollView>
{this.state.barList.map(createSlides)}
</ScrollView>
)
}
const createSlides = (uri, i) => (<CarouselItem
onPress={() => {}}
imgUrl={uri}
itemWidth={carouselItemWidth}
padding={carouselItemPadding}
key={i}
ref={(slide) => { this['slide_' + i] = slide}}
/>);
正如你看到的,我设置一个ref
,但后来尝试访问ref
的IT让我undefined
时。我的错误在哪里?
答
尝试把你的Component
class Foo extends Component {
constructor(props) {
super(props)
// make sure this method gets the right scope, no matter how it's called
this.createSlides = this.createSlides.bind(this)
}
render() {
return (
<ScrollView>
{this.state.barList.map(this.createSlides)}
</ScrollView>
)
}
createSlides(uri, i) {
return (<CarouselItem
onPress={() => { }}
imgUrl={uri}
itemWidth={carouselItemWidth}
padding={carouselItemPadding}
key={i}
ref={(slide) => { this['slide_' + i] = slide }}
/>)
}
}
+0
谢谢指出我愚蠢的错误:)) – Edgar
'createSlides'没有看到的范围('this')的
createSlides
方法类的。 –