Hi Ashley:
poolshark314 is on the right track. What ever you have calling your myItemReady() function is likely to be passing a null argument or the wrong argument.
Lets examine this in a mini tutorial using your code:
function myItemReady($w, wishlistItem){
// Get the wishlist product.
let product = wishlistItem.product;
// Set the repeater's elements using the item data.
$w('#productImage').src = product.mainMedia;
$w('#name').text = product.name;
$w('#price').text = product.formattedPrice;
The Warning you are getting:
Wix code SDK Warning: The src parameter of “productImage” that is passed to the src method cannot be set to null or undefined.
Is essentially saying:
“Hey you cannot set $w(‘#productImage’).src to a non-existent value”
OK let’s reverse through the code.
The assignment that is a problem is this one:
$w('#productImage').src = product.mainMedia
This means that the value of product.mainMedia doesn’t exist (is null or undefined). Why would this be the case?
Well either:
QUICK Tutorial:
Many times when we use data collections we have all of the data for an item in what is called an object. This is a container that carries multiple values we need each of which is attached to a name that we call a key. These “key:value” pairs are convenient ways to access the value.
In our example we need to assume that product is an object which is carrying some of these “key:value” pairs and that you think one of them is called mainMedia. So if I were to examine a valid product instance I would see something like this:
let product = {
"mainMedia": "an Image URL",
"name": "the product name",
"formattedPrice": "theFormatted price"
... // other records if any
};
If product doesn’t contain a “key:value” pair like “mainMedia”: “an Image URL” then product.mainMedia gives us a null value. null tells us that javascript was sent on a wild goose chase and found nothing!
OK So now we have to look at product to see if it could be the problem. This is the code that gives us our product value:
let product = wishlistItem.product;
Oh guess what another object assignment.
We are not getting an error with this assignment why is that? Well it is perfectly legal to give a new variable (created using let or var) a null value. So this means that:
By the way - this is the sort of stuff developers love to do 
We now have a mystery that we need to solve. Some where in your code a bad value is being set and we need to figure out where that bad value is coming from to fix the problem. As poolshark314 points out it is highly likely that the problem has nothing to do with your myItemReady() function but the code that calls it :-).
The way we figure that out is by using some console.log() calls. These print the values of the variables at key points in our code to tell us what the values of the dat are as we head towards the problem area. With this data we can (hopefully) get rid of the bad (buggy) code.
So key points to look at values are - always - when a function is called (to see if we got the value we were expecting. So since we are expecting an object we need to use a JSON call to see the contents reliably. The call you need looks like this:
function myItemReady($w, wishlistItem){
// Check our argument - stringify makes sure the object can be
// Printed. We also check for a null value and say that is what we found
console.log((wishlistItem ? JSON.stringify(wishlistItem): "wishlist is NULL!"));
// Get the wishlist product.
let product = wishlistItem.product;
The other thing we need to check (if wishlistItem is valid) is what product contains. You should see product in the console.log() output above. This is simply double checking things:
// Get the wishlist product.
let product = wishlistItem.product;
console.log((product ? JSON.stringify(product): "product is NULL!"));
Now you have this you might be able to figure the rest out. If not we will need to see ALL of your code and have more context for the page.
Also if you post the URL for your page we can given even more help 
Steve