मैं async संग्रहण का उपयोग करके डेटा (एक सरणी के रूप में) प्रदर्शित करने का प्रयास कर रहा हूं। डेटा लॉगिंग कंसोल काम करता है लेकिन जब मैं डेटा को राज्य में रखता हूं और प्रदर्शित करने के लिए इसके माध्यम से मैप करने का प्रयास करता हूं, तो यह नहीं होगा। किसी भी मदद का स्वागत है। धन्यवाद! कंसोल लॉग में परिणाम: ["team1", "team2", "team3"] JSON.parse से पहले Array [ "team1", "team2", "team3", ] JSON.parse के बाद

const [favoriteTeams, setFavoriteTeams] = useState([]);

const setStorage = async (team) => {
    let teams = [];
    try {
      let storedTeams = await AsyncStorage.getItem('favTeams');
      if (storedTeams !== null) {
        teams = JSON.parse(storedTeams); 
      }
      teams.push(team)
      await AsyncStorage.setItem('favTeams', JSON.stringify(teams));
    } catch (error) {
      //error
    }
};

const getStorage = async () => {
    const teams = await AsyncStorage.getItem('favTeams')
    if (teams !== null) {
        setFavoriteTeams(prevState => [...prevState, ...JSON.parse(teams)])
    }
}

useEffect(() => {
    getStorage()
}, [])

return (
    <View>
         {favoriteTeams.map((item) => {(
              <Text>{item}</Text> //console.log(item) works
          )}
       )}
    </View>
)
0
Torando1 22 नवम्बर 2021, 16:36
क्या आप कृपया AsyncStorage.getItem से प्राप्त होने वाला डेटा जोड़ सकते हैं?
 – 
Rohit
22 नवम्बर 2021, 16:45
["team1", "team2", "team3"] JSON.parse से पहले Array [ "team1", "team2", "team3", ] JSON.parse के बाद
 – 
Torando1
22 नवम्बर 2021, 17:00

1 उत्तर

सबसे बढ़िया उत्तर

आपके map कॉलबैक फ़ंक्शन का कोई रिटर्न मान नहीं है, इसलिए कोई भी सामग्री दिखाई नहीं देती है।

आपको या तो घुंघराले कोष्ठक हटा देना चाहिए। कर्ली ब्रैकेट्स को हटाकर आपका एरो फंक्शन परोक्ष रूप से सिंगल एक्सप्रेशन देता है।

return (
  <View>
    {favoriteTeams.map((item) => (
      <Text>{item}</Text>
    ))}
  </View>
)

वैकल्पिक रूप से आप घुंघराले कोष्ठक रख सकते हैं, जिस स्थिति में आपको स्पष्ट रूप से एक मान वापस करना होगा। कर्ली ब्रैकेट्स का फायदा यह है कि फंक्शन बॉडी में आपके पास कई स्टेटमेंट हो सकते हैं। जबकि उनके बिना आपके पास केवल एक ही एक्सप्रेशन हो सकता है।

return (
  <View>
    {favoriteTeams.map((item) => {
      return <Text>{item}</Text>
    })}
  </View>
)

विवरण के लिए देखें: एरो फंक्शन एक्सप्रेशन - फंक्शन बॉडी और कर्ली ब्रेसेस के बिना एरो फंक्शन

1
3limin4t0r 22 नवम्बर 2021, 17:28
इससे पूरी तरह चूक गए। धन्यवाद!
 – 
Torando1
22 नवम्बर 2021, 18:16