I am working on a function and when I set all of the required inputs as object props and some of them with default values, those that I gave default values to are undefined.
Basically, I want to create some of the properties of the object required and others not.
The issue is that, if I provide a value to containerClassName for example, all of the props that have default values become undefined and I can’t figure out why?
This will log all default values, no problems
beforeAfterComparison()
This will log undefined for all of them
beforeAfterComparison({ containerClassName: "someClassName" })
function beforeAfterComparison(
{
containerClassName,
beforeImageUrl,
afterImageUrl,
containerIndex,
lineWidth,
lineColor,
circleDiameter,
circleColor,
} = {
containerIndex: 0,
lineWidth: 2,
lineColor: "black",
circleDiameter: 50,
circleColor: "lightgray",
}
) {
console.log(containerIndex);
console.log(lineWidth);
console.log(lineColor);
console.log(circleDiameter);
console.log(circleColor);
}
beforeAfterComparison();
console.log("-------------------");
beforeAfterComparison({ containerClassname: "someClassName" });I am expecting that in both cases I should get my default values.
Advertisement
Answer
I think the syntax is wrong. Try this,
function beforeAfterComparison(
{
containerClassName,
beforeImageUrl,
afterImageUrl,
containerIndex = 0,
lineWidth = 2,
lineColor = "black",
circleDiameter = 50,
circleColor = "lightgray",
} = {}) {
console.log(containerIndex);
console.log(lineWidth);
console.log(lineColor);
console.log(circleDiameter);
console.log(circleColor);
}