This error message “Cannot read properties of undefined (reading ‘pathname’)” typically occurs when trying to access the property ‘pathname’ of an object that is undefined. It is a common error in JavaScript when attempting to access a property of an object that does not exist or is not defined.
Let’s understand this with an example:
// Example 1 - accessing property of an undefined object
let obj;
console.log(obj.pathname); // This will throw the error
// Example 2 - accessing property of a non-existent object property
let obj = {};
console.log(obj.pathname); // This will also throw the error
In Example 1, the variable ‘obj’ is not assigned any value, so it is undefined. Therefore, trying to access the property ‘pathname’ on an undefined object will result in the mentioned error.
In Example 2, although the object is defined, the property ‘pathname’ does not exist within it. Hence, trying to access the non-existent property will also throw the same error.
To fix this error, you must ensure that the object is defined and the property you are trying to access exists. Here’s an example of handling such cases with conditional checks:
let obj; // or let obj = {};
if (obj && obj.pathname) {
console.log(obj.pathname);
} else {
console.log("Object or property does not exist");
}
In this corrected code, it checks if ‘obj’ exists and also checks if the ‘pathname’ property exists within it. This way, the error is prevented by performing the necessary checks before accessing the property.