I want to conditionally style a button.
If an array contains some value I want a button to be contained, otherwise outlined.
This code works fine:
let [selectedFilters, setFilter] = React.useState([]);
<Button className="quiz-button" variant={selectedFilters.includes('button1') ? 'contained' : 'outlined' }
>Button 1</Button>
But when I try to convert this button to a component a Type error occurs TypeError: filters.includes is not a function
Code with an error is below
FilterButton.propTypes = {
filters: PropTypes.array,
buttonId: PropTypes.string,
filtersUpdate: PropTypes.func,
};
function FilterButton(filters, buttonId, filtersUpdate) {
return (
<Button variant={filters.includes(buttonId) ? 'contained' : 'outlined' }
>Button 1</Button>
)
}
export default function Quiz() {
let [selectedFilters, setFilter] = React.useState([]);
return (
<FilterButton
filters = {selectedFilters}
buttonId = {'button2'}
filtersUpdate = {setFilter}
/>
)
}
Any help is massively appreciated 🙂