由于this.setState不是函数,因此本机会收到错误

时间:2018-04-19 18:33:39

标签: reactjs react-native

您好我在我的构建过程中对原生做出反应我得到了这个错误

this.setState is not a function

和我的代码

type Props = {};
export default class App extends Component<Props> {

componentDidMount(){
 Proximity.addListener(this._proximityListener);
}
 _proximityListener(data) {
   this.setState({
     proximity: data.proximity,
     distance: data.distance // Android-only 
   });
 }


  render() {
    return (
      <View style={styles.container}>
        <Text style={styles.welcome}>
            00
        </Text>
      </View>
    );
  }
}

如何解决此错误? ,

2 个答案:

答案 0 :(得分:1)

将_proximityListener函数转换为箭头函数,如下所示:

_proximityListener = (data) => {...

这会将方法绑定到类,并为该方法提供对“this”关键字的访问权限。 :)

答案 1 :(得分:1)

componentDidMount功能更改为

componentDidMount(){
  Proximity.addListener(this._proximityListener.bind(this));
}