Reputation: 165
I am presenting this error when uploading the player to the server since locally it works fine.
Let me explain a bit, the player locally shows the song that is playing, the one that is coming and the one that has already played, but when uploading to the server I get the following error: Uncaught TypeError: Cannot read properties of undefined (reading 'replace' ) in the following lines of code but I don't exactly understand why. I would like to know if you can guide me on this to finish this project and deliver it, thanks in advance.
let song = data.currentSong.replace(/'/g, '\'');
currentSong = song.replace(/&/g, '&');
let artist = data.currentArtist.replace(/'/g, '\'');
currentArtist = artist.replace(/&/g, '&');
Upvotes: 13
Views: 192502
Reputation: 151
I had the same error and I fixed it like this:
Before:
localizeDate(date) {
date = date.replace("T", "/");
return date.replace(".000000Z", "");
},
After:
localizeDate(date) {
if(!date) return
date = date.replace("T", "/");
return date.replace(".000000Z", "");
},
The issue is that the function is called before any data loads from the server.
You could also fix it with Promises, async/wait or loaders.
Upvotes: 15
Reputation: 194
In your example Uncaught TypeError: Cannot read properties of undefined (reading 'replace' )
can occur only if your variables song
and/or artist
are undefined.
That means either data.currentSong
or data.currentArtist
or both of them getting you undefined result.
Answer to your question:
There could be some differences between the web server and the local server. For example, sometimes the jQuery version of local server is different than the web server. The exact source of the issue could be found, if you can share the code which is responsible to get you the data.
Upvotes: 13