Javascript 协助在聊天应用程序上实现缓存
我正在尝试将来自firebase的消息保存到缓存中,然后flatlist将从缓存中获取数据。我有一个名为cache的组件,它具有存储和获取功能,它正在工作,因为我在不同的屏幕上使用它来存储数据 这是从firebase获取数据的函数Javascript 协助在聊天应用程序上实现缓存,javascript,react-native,google-cloud-firestore,expo,asyncstorage,Javascript,React Native,Google Cloud Firestore,Expo,Asyncstorage,我正在尝试将来自firebase的消息保存到缓存中,然后flatlist将从缓存中获取数据。我有一个名为cache的组件,它具有存储和获取功能,它正在工作,因为我在不同的屏幕上使用它来存储数据 这是从firebase获取数据的函数 const [messages, setMessages] = useState([]); useEffect(() => { var unsubscribe; if (currentUser)
const [messages, setMessages] = useState([]);
useEffect(() => {
var unsubscribe;
if (currentUser)
{
unsubscribe = db
.collection("chats")
.doc(currentUser.uid)
.collection("messages")
.orderBy("timestamp", "asc")
.onSnapshot((snapshot) => {
setMessages(snapshot.docs.map(doc => ({
message: doc.data().message,
timestamp: doc.data().timestamp.toDate(),
sender: doc.data().sender,
id: doc.id,
})))
});
}
return unsubscribe;
}, [currentUser])
这是从缓存中存储和获取数据的函数
const [cachedMessages, setCachedMessages] = useState(null);
useEffect(() => {
async () => {
await cache.store(cacheKeys.MESSAGES, messages);
const data = await cache.get(cacheKeys.MESSAGES);
setCachedMessages(data);
}
}, [messages])
有什么问题?什么不起作用?是否检查是否每次调用cache.store?看起来您声明了一个匿名lambda,但从未调用它。屏幕上没有显示任何内容。由于某些错误,虽然使用React Native Debugger,但我无法看到缓存,但我确信缓存组件正在工作。如果问题是没有显示任何内容,请向我们演示如何显示您的状态?另外,您可能希望尝试
const fn=async()=>{…};fn()
不调用匿名lambda是lols的问题。谢谢我真的不太明白lambda的表达方式