2017-06-15 6 views
1

私は構築しているアプリケーションにReduxとReact Nativeを使用しています。また、2つのnpmモジュール、react-native-simple-store、redux promiseを使用しています。私は自分の問題を引き続き説明するように、それぞれの使い方を説明します。Reduxデフォルト値を返す

私はcomponentWillMountメソッドで起動する基本的なアクションクリエータを持っています。このアクション作成者の目的は、ユーザーのデバイスからデータの配列を取得することです。私はこれを行うためにreact-native-simple-storeを使用します。これは、常にあなたが約束として要求したデータを返します。ここに私の行動の作成者である:私の減速で

import store from 'react-native-simple-store' 
export const GET_ALARMS = 'get_alarms' 

export const getAlarms =() => { 
    // this variable will hold the promise 
    let alarms = store.get('alarms') 

    return { 
    type: GET_ALARMS, 
    payload: alarms 
    } 
} 

、私は自分の行動の作成者で求めていた配列を受け取るために期待していました。しかし、それは動作しません、そして、私は空の配列が毎回返されることになります。それは、

Object { type: "get_alarms", payload: Array(3) } 
    payload: Array(3) 
     0: Object 
     1: Object 
     2: Object 
    type: "get_alarms" 

これは私が欲しいのデータです、面白い何

import GET_ALARMS from '../actions/getAlarms' 

export default (state = [], action) => { 
    console.log(action) 
    switch (action.type) { 
    case 'GET_ALARMS': 
     return [...state, action.payload] 
    } 

    return state 
} 

私はアクションが減速に入ってくるにconsole.logとき、私はコンソールで確認されています。ここに私の減速がありますその内部に3つのオブジェクトがある配列です。そこにはありますが、私は何か分が足りません。

これについてのヘルプはありますか?

答えて

3

つのミス

  1. それはデフォルトのエクスポートではなかったので、あなたが誤ってアクションがコンスタントにインポートしている、あなたはせずに、このインポートされた変数を使用Swtichの場合{}

  2. を使用する必要があります引用符。

あなたのコード

import {GET_ALARMS} from '../actions/getAlarms' 

export default (state = [], action) => { 
    console.log(action) 
    switch (action.type) { 
    case GET_ALARMS: 
     return [...state, action.payload] 
    } 

return state 
} 
+0

ああ、ありがとう。私はこれを逃したとは信じられません。 –

+0

ダニエルを助けてくれてありがとう:) –

0

あなたの減速によると、あなたの行動は、大文字にする必要があります:

export const GET_ALARMS = 'GET_ALARMS'

スイッチのケースでは大文字と小文字が区別されます。そういうわけで、あなたは決して事件に参入しません。あなたの減速で

+1

ねえアントワーヌ、返信いただきありがとうございますが、これは実際には解決策ではありませんでした。受け入れられた答えを確認して、実際に何が起こったかを確認してください。 –

関連する問題