2017-09-08 21 views
0

私は他のコンポーネントに保存するAsyncStorage経由でブリーデバイスからIDをロードしようとします。私はこれを行うが、その後、私は次のエラーを取得する:ネイティブ '未定義のプロパティを読み取れません' AsyncStorage

ExceptionsManager.js:65 Cannot read property 'loadMac' of undefined 

これは私のloadMac()関数です:

export function loadMac() { 
    AsyncStorage.getItem(MAC_KEY) 
    .then((item) => { 
     console.log(item); 
     return item; 
    }) 
    .catch((error) => { 
     console.log(error); 
    }); 
} 

そして、私はこのように私のコンポーネントでこの関数を呼び出す:

store.loadMac(); 

次に試してみます

AsyncStorage.getItem(MAC_KEY) 
    .then((item) => { 
     console.log(item)}); 

私のIDを取得しますが、別のファイルにある私の機能からは取得できません。

+0

store.loadMac();を呼び出すときにストアが定義されていません –

+0

ストアが何かのように定義される可能性があると表示されていません –

+0

ストアとは何ですか?関数をストアとしてインポートしましたか? loadMacモジュールをstoreとしてインポートした場合は、store()を呼び出します。 –

答えて

2

エラーメッセージにはストアが定義されていないと表示されているため、解決策を探す必要があります。 あなたが投稿したコードでは、2つの異なるコンポーネント、つまり 'loadMac'関数にアクセスするためにエクスポートしている 'store'という1つのステートレスコンポーネントがあると仮定しています。もう1つは、 '店舗'コンポーネントをインポートする場所です。私が間違っているなら私を訂正してください。 この場合、エクスポートの構文が正しくありません。これは、これに似たもの

export default const Store =() => {...} 

こと。そして、このようにそれをインポートする必要があります:それはない場合、あなたはexportもが正確にあなたの「ストア」が何であるかを明確にすることを持つべきではない

import Store from './yourPathToStore'; 

を。

希望します。

+0

Jeahそうです、私はインポートを忘れています、これは1つのコンポーネント< – developKinberg

関連する問題