测试this.props.navigation

时间:2018-06-02 02:49:42

标签: javascript react-native testing jest enzyme

import React from 'react';
import ListElements from '../Components/ListElements';
class HospitalsScreen extends React.Component {

  constructor(props) {
    super(props);
    this.state = {
      Hospitals: ['Hospital de Base','Hospital Regional de Taguatinga','Hospital da Ceilandia','Clínica']
    };
  }

  onPressItem() {
    this.props.navigation.navigate('sectors');
  }

  render() {
    return (
      <ListElements
      list = {this.state.Hospitals}
      title='Hospitais'
      onPress={this.onPressItem.bind(this)}
      />
    );
  }
}

export default HospitalsScreen;

我在_onPress功能中测试此屏幕时遇到了一些麻烦。 我没有找到任何解决问题的方法。

1 个答案:

答案 0 :(得分:0)

Javascript 中,函数内this的值取决于调用该函数的方式。

了解this绑定在JavaScript here

中的工作原理

有几种方法可以实现它。使用它们,看看你是否在函数中未定义this

一种是在构造函数中添加this.onPressItem = this.onPressItem.bind(this);

另一个是箭头功能

onPressItem= (event) => {this.props.navigation.navigate('sectors'); }

然后有onPress={this.onPressItem.bind(this)}

您可以找到更多详情here

另请阅读本文Don't Use Bind When Passing Props