Skip to content

react/checked-requires-onchange-or-readonly Pedantic

What it does

This rule enforces onChange or readonly attribute for checked property of input elements. It also warns when checked and defaultChecked properties are used together.

Example

Examples of incorrect code for this rule:

jsx
<input type="checkbox" checked />
<input type="checkbox" checked defaultChecked />
<input type="radio" checked defaultChecked />

React.createElement('input', { checked: false });
React.createElement('input', { type: 'checkbox', checked: true });
React.createElement('input', { type: 'checkbox', checked: true, defaultChecked: true });

Examples of correct code for this rule:

jsx
<input type="checkbox" checked onChange={() => {}} />
<input type="checkbox" checked readOnly />
<input type="checkbox" checked onChange readOnly />
<input type="checkbox" defaultChecked />

React.createElement('input', { type: 'checkbox', checked: true, onChange() {} });
React.createElement('input', { type: 'checkbox', checked: true, readOnly: true });
React.createElement('input', { type: 'checkbox', checked: true, onChange() {}, readOnly: true });
React.createElement('input', { type: 'checkbox', defaultChecked: true });

How to use

To enable this rule in the CLI or using the config file, you can use:

bash
oxlint --deny react/checked-requires-onchange-or-readonly
json
{
  "rules": {
    "react/checked-requires-onchange-or-readonly": "error"
  }
}

References

Released under the MIT License.