获取无法使用React Native Android调试

时间:2016-04-19 02:08:19

标签: android reactjs react-native fetch

我正在尝试创建一个非常简单的ReactNative应用程序,以便在Android上使用GraphQL和RN(我已经熟悉它可以在iPhone上运行)。

但我遇到了问题 - 我的根组件向API发出get请求。虽然当我启动XCode模拟器时该请求工作正常,但当我在手机上运行Android版本时它完全失败。

  

Android / iOS版本现在完全相同。这两个索引文件都使用react-native-router-flux并且相同,并且它们导入共享组件。

这是组件的简化代码:

  constructor(props) {
    super(props);
    this.state = {
      source: 'myGraphQLEndpoint'
    }
  }

  componentDidMount() {
    if (this.props.drill) { return null; }

    this.serverRequest = fetch(this.state.source)
      .then((result) => result.json())
      .then((json) => {
        this.setState({
          drill: json.data.drill
        });
      });
  }

  componentWillUnmount() {
    this.serverRequest.abort();
  }

  render() {
    const { drill } = this.state;
    if (!drill) { return null; }
    ... some view stuff
  }

在我的iOS模拟器上,这非常有效。在我的Android手机上,它从不设置状态,因此不会超过if (!drill)行。如果我直接将状态设置为预期的API数据(而不是进行实际调用),那么Android应用程序就可以正常工作(使用非实时数据)。

手机已连接到互联网。

知道什么是错的吗?

PS - 我尝试过多种变体,包括:

  • 将请求更改为只有一个.then,即response.json().data.drill
  • 将响应分配给在请求之外定义的变量,并将state设置为等于(将状态设置为看似无法打印到的响应缓冲区[42, 36, ...的响应缓冲区Index屏幕。

没有骰子。

0 个答案:

没有答案