2016-07-25 9 views
0

React Native iOSアプリケーションの画面にいくつかの配列を印刷したいだけです。今は何も画面に表示されていません。 forループの後のconsole.logsには、アレイに必要なデータがあることが示されますが、画面には反映されません。フェッチ呼び出しがロードされた後、再びレンダリングするにはどうすればよいですか?React Nativeのスクリーンに配列を印刷する

'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> 
    ); 
    } 
} 

答えて

1
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}); 
関連する問題