首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在React-Native中访问this.state

在React-Native中访问this.state
EN

Stack Overflow用户
提问于 2016-10-31 19:08:28
回答 1查看 12.4K关注 0票数 6

嗨,我是个新手,所以请耐心等待。我想将地理位置存储为一个州。看起来不错,因为任何位置的变化都会触发渲染,这正是我想要的。在开发过程中,我有一个通过访问lastPosition手动触发事件的按钮。但当我这么做的时候。状态是“未定义的”。有什么线索吗?

代码语言:javascript
复制
export default class FetchProject extends Component {
    constructor(props) {
        super(props);
        this.state = {
            initialPosition: 'unknown',
            lastPosition: 'unknown',
        };
    }

    //code that sets lastposition
    componentDidMount() {
        ....
    }

    _onPressGET (){
        console.log("PressGET -> " + this.state); //undefined
        var northing=this.state.initialPosition.coords.latitude; 
        //triggers error
    }

    render() {
       return (    
           <View style={styles.container}>
               <TouchableHighlight onPress = {this._onPressGET} style = {styles.button}>
                  <Text>Fetch mailbox</Text>
               </TouchableHighlight>
           </View>
       );
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-31 19:11:49

在RN中使用ES6类时,注意绑定this - this可能不是您想的那样,除非您绑定它。

代码语言:javascript
复制
onPress = { this._onPressGet.bind(this) }

或在构造函数中

代码语言:javascript
复制
constructor(props) {
  super(props);

  this.state = {
    initialPosition: 'unknown',
    lastPosition: 'unknown'
  };

  this._onPressGet = this._onPressGet.bind(this);
}

或者也许是最优雅的方式

代码语言:javascript
复制
_onPressGet = () => {
  // Function body
}

按照从最低到最高的顺序。

票数 23
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40340958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档