React Callback refs - Disable Button onClick
Table of Contents
How to get to a DOM element in JSX
The following could probably be done with setting state and setting the disabled attribute based on this, but mine was a bit more complex and I found this snippet that allowed you to access the Element.
To access the Element you want, you need to first assign it a ref
. Like below
Callback refs are a way to assign your element a function with a name you can access higher up in your Component. For example you may want to change the text temporarily or change an attribute, call a event handler, etc, depending on a more complex set of logic.
More examples and alternative ways of using refs
can be found here https://reactjs.org/docs/refs-and-the-dom.html#callback-refs
From here we are now able to access this in our code. For the example below, onClick
will disable the button to prevent users from double clicking the button.
onClick = e => { this.btnReview.setAttribute("disabled", "disabled"); }