2016-03-29 20 views
0

API呼び出しから返された結果に1つの配列項目が戻ってきています。ReactJS、Redux:私の状態でアイテムの配列を返すには?

これはアクションの機能です。

followCheckList:function(userId){ 
    for(var i= 0; i < userId.length;i++){ 
     return{ 
     types: [C.FOLLOW_CHECK_LIST, C.FOLLOW_CHECK_LIST_SUCCESS, C.FOLLOW_CHECK_LIST_FAIL], 
     promise: (client)=> client.get(`/graph/me/follows/${userId[i]}`) 
     .then(result => { 
      return result.id;  
     }) 
     } 
    } 
    } 

マイ減速

case C.FOLLOW_CHECK_LIST: 
     return{ 
      ...state, 
      follow_check_list:null, 
      error:false, 
     }; 
    case C.FOLLOW_CHECK_LIST_SUCCESS: 
     return{ 
      ...state, 
      //break here 
      error:false,     
      follow_check_list: action.result 
     }; 

    case C.FOLLOW_CHECK_LIST_FAIL: 
     return{ 
      ...state, 
      follow_check_list:false, 
      error:action.error, 
     }; 

    default: return state || {loading: false, 
            loaded: null, 
            list_loaded: null}; 
} 

私は私の状態で、私は

follow_check_list : Array[2]. 
     0: item1, 
     1: item2 

が表示されるはずですfollow_check_list : action.resultから2件の結果を期待していしかし、その代わりに、私は以下を参照してください

follow_check_list : Array[1]. 
     0: item1, 

更新 私のコンポーネント。 arrayIdsには2つの項目があります。機能の実行は、あなただけを取得する理由でなければならない最初の反復、上停止します。あなたのfollowCheckList機能はループ「のために」の「リターン」の文を持っているように見え事前みんな

+0

"followers_checklist"はどこから来たはずですか? – markerikson

+0

その内部の機能。定義されていない場合、私はそれを作成します。私は、関数が2回以上呼び出されたときに、変数が2回目のインスタンス化を行わないようにするためにこれを行いました – joejoeso

+0

そして、AJAXコールバックの "結果"はどうですか?それは単一のオブジェクトですか?あなたがやっていることは、一つのオブジェクトを配列に押し込んでいるからです... – markerikson

答えて

1

let arrayIds=[]; 
const FollowStatus = React.createClass ({ 

    componentWillMount(){ 
     arrayIds.push(this.props.status); 
    }, 
    componentDidMount(){ 
     this.props.followCheckList(arrayIds) 
    }, 

感謝"item1"。

+0

@joejoesoこの仮定があなたの問題の背後にあるかどうかをチェックしましたか? –

関連する問題