使用react-navigation

时间:2017-04-18 14:49:34

标签: javascript react-native react-navigation

我想在点击按钮时将数据传递到另一个屏幕。我使用的是router-flux,它运行得很好,但是在反应导航方面它不会起作用。 因此,在router-flux上,点击按钮时,它会调用此函数:

  onSearch() {
    fetch(`URL`, {
        method: 'GET',
        })
      .then((response) => { return response.json() } )
      .then((responseJson) => {
        Action.results({data: responseJson});
      })
      .catch((error) => {
        Alert.alert("0 Cars!");
      });
  }

但是在react-navigation上,如果我将代码更改为:

  onSearch() {
    fetch(`URL`, {
        method: 'GET',
        })
      .then((response) => { return response.json() } )
      .then((responseJson) => {
        this.props.navigation.navigate('Resultados', { data: responseJson });
      })
      .catch((error) => {
        Alert.alert("0 Cars!");
      });
  }

它不会工作,我总是得到警报" 0汽车!"。 我究竟做错了什么?在router-flux上它非常简单。

这就是我调用onSearch函数的方式:

    <Button onPress={this.onSearch} style={{backgroundColor: '#f48529', width: 140, borderRadius: 30, height: 40}} >
        <Text style={{color: 'white', fontFamily: 'rubik-light', fontSize: 17}}>Search</Text>
        <Icon size={15} name={'search'} color={'white'} />
    </Button>

1 个答案:

答案 0 :(得分:0)

尝试将onPress={this.onSearch}更改为onPress={this.onSearch.bind(this)}

尝试

onSearch() {

    const { navigate } = this.props.navigation;

    fetch(`URL`, {
        method: 'GET',
        })
      .then((response) => { return response.json() } )
      .then((responseJson) => {
        navigate('Resultados', { data: responseJson });
      })
      .catch((error) => {
        Alert.alert("0 Cars!");
      });
  }