2017-10-27 1 views
0

アンドロイドとiOSの反応ネイティブアプリにAsync Storageを使用してJSONオブジェクトを保存します。私はオブジェクトをストリング化し、Async Storageを使用してストリングを格納できるだけのためにオブジェクトを格納します。アプリはAndroidで正常に動作しますが、iOSではエラーが発生します。React-native iOS、Async storage error:無効なキー - 少なくとも1文字である必要がありますキー:

Error: { 
    key = ""; 
    message = "Invalid key - must be at least one character. Key: "; 
} 

RCTMakeAndLogError 
    RCTUtils.m:394 
RCTErrorForKey 
-[RCTAsyncLocalStorage _writeEntry:changedManifest:] 
-[RCTAsyncLocalStorage multiSet:callback:] 
__invoking___ 
-[NSInvocation invoke] 
-[NSInvocation invokeWithTarget:] 
-[RCTModuleMethod invokeWithBridge:module:arguments:] 
facebook::react::RCTNativeModule::invokeInner(unsigned int, folly::dynamic const&&) 
facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int)::$_0::operator()() const 
invocation function for block in facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int) 
_dispatch_call_block_and_release 
_dispatch_client_callout 
_dispatch_queue_serial_drain 
_dispatch_queue_invoke 
_dispatch_queue_override_invoke 
_dispatch_root_queue_drain 
_dispatch_worker_thread3 
_pthread_wqthread 
start_wqthread 

私の検索が反応し、ネイティブhereのための非同期ストレージのiOSの実装に私を導いたが、私はObjective-Cのかスウィフトについての知識がない:次のようにエラーがあります。誰かがここで私を助けることができれば感謝します。ありがとう!

更新
私はAsyncStorageを使用して値をJSファイルに保存します。

+1

あなたのアプリでAsyncStorageの使い方を[mcve]に追加できますか? – bennygenel

+0

@bennygenel:私の質問を見ていただきありがとうございます。あなたが提供したリンクを参照すると、問題の原因が見つかったスクリーン上のすべてのAsyncStorage実装にコメントしました。私は以下の私の答えを掲載している、私の答えに何かが必要な場合は追加してください。再度、感謝します! –

答えて

1

私の場合、空の文字列( "")で定数ファイルの記憶域変数を初期化したため、この問題が発生します。
iOS implementation of AsyncStorageを参照すると、エラーメッセージを出す関数はNSStringオブジェクトの文字列値を受け取り、文字列の長さは1より大きくなければならないことが必要です。空文字列の長さは0になるため、このエラーが発生します。
変数を空の文字列で初期化します。
このエラーを表示するために時間を割いていただき、ありがとうございました。

関連する問題