My thought has always been: 3 method parameters is too many. So, the following method call:
sayHi(this.props.firstname, this.props.lastnane this.state.message)
...to this:
sayHi({
firstName: this.props.firstname,
lastname: this.props.lastname,
message: this.state.message
})
And the actual function signature would change from:
function sayHi(firstname, lastname, message)
...to:
function sayHi({firstname, lastname, message})