ios - 在 React Native 中将数组打印到屏幕

标签 ios arrays react-native

我只想在我的 React Native iOS 应用程序的屏幕上打印几个数组。现在屏幕上什么也没有显示。 for 循环后的 console.logs 显示数组具有它们应该具有的数据,但未反射(reflect)在屏幕上。如何在 fetch 调用加载后再次渲染?这是我的代码:

'use unique'
import React, { Component } from 'react';
import {
  StyleSheet,
  TouchableHighlight,
  Text,
  View,
  ListView
} from 'react-native';

import api from './apicall';

class APIRequest extends Component {

  constructor() {
    super();

    this.state = {
      users: [],
      id: [],
      type: []
    }
  }

  componentWillMount() {

      api.getData()
        .then((res) => {
          this.setState({
            users: res
          })
          for (var i = 0; i < this.state.users.length; i++) {
            this.state.id.push(this.state.users[i].id);
            this.state.type.push(this.state.users[i].type);
      });
  }

  render() {
    return(
      <View style={styles.container}>
        <Text style={styles.buttonText}>
          {this.state.id}
        </Text>
      </View>
    );
  }
}

最佳答案

this.state.id.push(this.state.users[i].id);
this.state.type.push(this.state.users[i].type);

这是设置新状态的错误方法。您应该执行以下操作:

var idArray = [];
var typeArray = [];
for (var i = 0; i < this.state.users.length; i++) {
  idArray.push(this.state.users[i].id);
  typeArray.push(this.state.users[i].type);
}
this.setState({id: idArray});

关于ios - 在 React Native 中将数组打印到屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38573550/

相关文章:

iphone - Objective-C : Comparing CGPoints

javascript - 如何在 express.js 中获取请求查询参数的数量?

ios - Dictionary swift 中键和值中的两个数组

javascript - 使用 for 循环和列表将 props 传递给 RN 组件

javascript - 从react-bootstrap导入任何组件都会抛出错误

ios - 自定义 UIAlertView 上的按钮

ios - 扩展对 swift 的性能有害吗?

ios - 如何实现延迟json文件下载?

c - C 中返回的数组不包含相同的值

javascript - React Native 泛响应器