2015-09-12 4 views
6

में स्थानीय स्टोरेज चर नहीं ढूंढ सकता है मेरे पास एक वास्तविक मूल ऐप है जो क्रोम डीबगर के साथ ठीक काम करता है। एक बार जब मैं इसे हालांकि अक्षम करें, मैं निम्नलिखित त्रुटि मिलती रहती है जब भी मैं बनाने की कोशिश किसी भी पार्स कॉल:पार्स रीयल नेटिव

Parse.User.logIn(
    email, 
    password, 
    { 
    success: function(res) { 
     console.log('success'); 
    }, 
    error: function(error) { 
     console.log(error.code + ' ' + error.message); 
    } 
    } 
); 
:

React Native and Parse error

कॉल स्टैक में एक उपयोगकर्ता लॉग इन करने के प्रयास करते समय निम्न कोड को वापस ले जाता है

मैंने कंसोल स्टेटमेंट को हटाने का प्रयास किया है, अगर कंसोल के साथ त्रुटि को उपलब्ध नहीं किया गया है, लेकिन इसका कोई फायदा नहीं हुआ है। यह अन्य पारसे कॉल के साथ होता है, और हमेशा लापता localStorage चर के साथ करना होता है।

किसी भी मदद के लिए अग्रिम धन्यवाद!

अद्यतन:

लगता Firebase के साथ एक समान मुद्दा मौजूद है। https://groups.google.com/forum/#!topic/firebase-talk/Y_usPRhOIYA

वे उल्लेख करते हैं कि समस्या को स्थानीय स्टोरेज के लिए पॉलीफिल नहीं होने के साथ करना है।

उत्तर

10

ऊपर जवाब तकनीकी रूप से सही हैं, लेकिन पार्स एक समाधान है कि एक polyfil या पदावनति की आवश्यकता नहीं है प्रदान की है। यह पढ़ने की मेरी निरंतर कमी के कारण था। उल्लेख नहीं मैं पार्स रूप में अच्छी तरह से प्रतिक्रिया के लिए उपयोग कर रहा था

// For React Native apps 
var React = require('react-native'); 
var Parse = require('parse/react-native'); 
var ParseReact = require('parse-react/react-native'); 

क्षमा करें: मैं Parse React docs पर इस पाया:

As of version 1.6, the Parse JS SDK has a different build for React Native. If you're using Parse+React on React Native, you'll need to require the 'parse-react/react-native' package instead.

उदाहरण के लिए। मैंने सोचा कि समस्या सिर्फ पार्स के साथ थी, क्योंकि मैंने पारसे रिएक्ट के माध्यम से डेटा सब्सक्रिप्शन जोड़ना शुरू नहीं किया था।

+1

पार्स v1.6.4 और प्रतिक्रिया-मूल v2.14.3 का उपयोग करना। जब मैं यहां दिखाए गए प्रयासों की कोशिश करता हूं तो मुझे निम्न त्रुटि मिलती है: 'अज्ञात मॉड्यूल की आवश्यकता है "पार्स-प्रतिक्रिया/प्रतिक्रिया-मूल"। यदि आप सुनिश्चित हैं कि 'मॉड्यूल है, तो पैकेजर को पुनरारंभ करने का प्रयास करें। मूल पोस्टर के साथ, मूल का उपयोग करते हुए: 'var Parse = आवश्यकता ('parse')। पार्स; 'var ParseReact = आवश्यकता ('पार्स-रिएक्शन'); अभी भी ठीक काम करता है अगर मैं डीबग मोड में हूं, और आईओएस एमुलेटर में, लेकिन एंड्रॉइड एमुलेटर में और वास्तविक डिवाइस पर कोड हमेशा स्थानीय स्टोरेज के बारे में शिकायत नहीं करता है। –

2

यह सही है (पॉलीफिल के साथ)। पॉलीफिल के रूप में कोई स्थानीय स्टोरेज जोड़ा नहीं गया है और न ही ऐप्पल के एम्बेडेड जावास्क्रिप्ट कोर इंजन में स्थानीय स्टोरेज लागू किया गया है (जहां क्रोम के v8 ने इसे निश्चित रूप से कार्यान्वित किया है)। मुख्य कारण यह है कि लोकल स्टोरेज तुल्यकालिक है और प्रतिक्रिया केवल डिजाइन द्वारा एसिंक्रोनस ऑपरेशंस के साथ काम करनी चाहिए।

एक अच्छा समाधान/मिनी-पॉलीफिल है जो स्थानीय स्टोरेज को इन-मेमोरी संस्करण के साथ बदलता है: https://gist.github.com/juliocesar/926500। इससे पार्स को कैश के लिए स्थानीय स्टोरेज का उपयोग करना चाहिए (यह मुख्य उद्देश्य है जिसका उपयोग वे अब कर रहे हैं)। डेटा निष्पादन के बीच डेटा लगातार संग्रहित नहीं किया जाएगा। मुझे यकीन नहीं है कि क्या आप पार्स द्वारा स्थानीय स्टोरेज उपयोग को अक्षम कर सकते हैं, लेकिन यह अन्वेषण करने की एक और संभावना है।

2

मैं 1.5.0 तक डाउनग्रेड कर चुका हूं और अब काम कर रहा हूं।

"dependencies": { 
    "parse": "1.5.0", 
1

मुझे नहीं लगता कि पारसे + प्रतिक्रिया का उपयोग करने के लिए भी मजबूर होना एक अच्छा पर्याप्त समाधान है। उदाहरण के लिए, मैं रेडक्स के साथ अपना ऐप बना रहा हूं, यह मेरे एक्शन क्रिएटर के अंदर मेरे सभी एपीआई अनुरोधों को रखने के लिए बहुत अधिक समझ में आता है।

1.6.0 में पार्स हमें स्थानीय संग्रहण का उपयोग करने के लिए मजबूर कर रहा है, जब प्रतिक्रिया मूल इसका समर्थन नहीं करता है। प्रतिक्रिया मूल हालांकि AsyncStorage का समर्थन करता है।

मेरे लिए मैं बस 1.5 तक डाउनग्रेड किया गया, उम्मीद है कि वे भविष्य में स्थानीय संग्रहण या असिंक स्टोरेज का उपयोग करने का विकल्प देंगे।

तो लोग जो इस पर ठोकर खाते हैं और पारसे का उपयोग करने के लिए मजबूर नहीं होना चाहते हैं + प्रतिक्रिया दें कि आपका उत्तर 1.5 पर डाउनग्रेड करना है, package.json में अपनी निर्भरताओं को "parse": "1.5.0" पर बदलें।

संबंधित मुद्दे