undefined不是对象(评估'this.panResponder.panHandlers')

时间:2017-03-11 09:36:41

标签: react-native

import ViewPager from 'react-native-viewpager'
_renderPage(data: Object, pageID: number | string) {
        return (
              <View style={{flex:1}} key={data.id}>
                    <Image {...this.panResponder.panHandlers} style={[this.state._circleStyles,{width:300,height:300}]} source={{uri : 'http://facebook.github.io/react/img/logo_og.png'}}/>
              </View>
        );
  }
render(){
<ViewPager
     ref={(viewpager) => {this.viewpager = viewpager}}
     dataSource={this.state.dataSource}
     renderPage={this._renderPage}
     isLoop={false}
     renderPageIndicator={false}
     locked={true} autoPlay={false}/>
}

此代码:

{...this.panResponder.panHandlers}

它在render()函数中工作正常。但_renderPage()函数显示以下错误消息。如何纠正这个问题?

undefined is not an object (evaluating 'this.panResponder.panHandlers')

1 个答案:

答案 0 :(得分:1)

这是因为_renderPage具有不同的范围和&#34;这个&#34;不会像你期望的那样在那里工作。解决方案是将父作用域绑定到该函数。

示例代码:

class Example extends Component {
  constructor(props) {
    super(props);
    this._renderPage = this._renderPage.bind(this);
  }
}