I’m trying to use React Moralis to call a cloud function.
I can retrieve the cloud function data using vanilla JS, but not using the react-moralis hooks.
I am trying to get the data to appear in the console but I can’t even get that with react atm.
I’m obviously missing something basic, but can’t figure out what.
CLOUD FUNCTION CODE (Working)
Moralis.Cloud.define("myCloudFunction", async (request) => {
const query = new Moralis.Query("myClass");
query.equalTo("address", request.params.user);
const results = await query.find({useMasterKey:true});
return results
});
VANILLA JS CODE (Working)
const params = {user: Moralis.User.current().get('ethAddress')}
const results = await Moralis.Cloud.run("myCloudFunction", params);
console.log(results)
// Result: (29) All good
REACT CODE (Not working)
import { useMoralisCloudFunction, useMoralis } from "react-moralis";
import { useEffect, useState, useMemo } from 'react';
function MyFunction() {
const { user } = useMoralis()
const userAddress = useMemo(() => user?.attributes.ethAddress, [user]);
const { data: testData, isLoading } = useMoralisCloudFunction("myCloudFunction");
const [thedata, setTheData] = useState("")
useEffect(() => {
if (!isLoading) {
setTheData(testData);
console.log("fetched")
console.log(thedata)
console.log(testData)
}
}, [testData])
return (
<></>
);
}
export default MyFunction;
// REPONSE:
// fetched
// null
// null
Thanks for your help