Inspect Stateless Component Props in ReactJs
Hi, recently I've shared my tips in javascript, checkout here. On the last section, I did mention how do you debug using console.log
.
So today, I'm going to share a little bit the same concept but it will be in ReactJs context. I hope it will useful for us 😊.
In my previous post, you can log current params of a callback function with
console.log(data) || ...someFn()
const nameAndEmails = users.map((user) => console.log(user) || ({
name: user.name,
email: user.email
}))
In ReactJs, especially for stateless components, sometime our coworker didn't write any PropTypes. Hence, it a little bit hard to know what kind of props
shape it will receive.
Lets jump to the example:
// let say you have this kind of component
const Button = (props) => (
<button class="btn btn-primary" type="button" {...props} >
{`${props.children}`}
</button>
);
// use it like this
<Button type="Submit">Click Me</Button>
You would not want to convert this component into { ... return (); }
, because it requires a lot of typing, like this:
// 😓, need to type aloot of things here
const Button = (props) => {
console.log(props);
return (
<button class="btn btn-primary" type="button" {...props} >
{`${props.children}`}
</button>
);
};
So, instead of convert to ordinary function, you can try this approach to log the props
.
const Button = (props) => console.log(props) || (
<button class="btn btn-primary" type="button" {...props}>
{`${props.children}`}
</button>
);
// It will logs:
// {
// type: 'Submit',
// children: 'Click Me'
// }
Essentially, you can use this trick to any callback function like in map.
, .filter
, .reduce
I hope you get the idea, See you next time.