Здесь проблема в том, что вы написали свою handleChange
функцию вне компонента, также вы объявили свое состояние вне компонента, как,
const handleChange = (event, newValue) => {
setValue(newValue);
}
const [value, setValue] = React.useState(0);
class DetailPills extends React.Component {
...
}
Согласно документам ,
Крючки - это новое дополнение в React 16.8. Они позволяют вам использовать состояние и другие возможности React без написания класса.
Ваша основная проблема - , вы используете Hooks
с компонентом на основе class
, что является неправильным подходом к использованию Hooks
. React Hooks
предназначен для использования только с компонентом functional
.
Таким образом, правильный код может быть таким,
function DetailPills(props) {
const [active, setActive] = React.useState(props.active);
const [value, setValue] = React.useState(0);
const handleChange = (event, newValue) => {
setValue(newValue);
}
const classes = useStyles();
return (
<div>
<Tabs
value={value}
onChange={handleChange}
indicatorColor="transparent"
textColor="primary"
>
<Tab className="btn btn-blk btn-pill" label="Identity Checks" active />
<Tab className="btn btn-blk btn-pill" label="Academic Qualifications" />
<Tab className="btn btn-blk btn-pill" label="Credit Checks" />
<Tab className="btn btn-blk btn-pill" label="Criminal Checks" />
<Tab className="btn btn-blk btn-pill" label="Employment Checks" />
<Tab className="btn btn-blk btn-pill" label="Enatis Checks" />
</Tabs>
<div className="tab-content">
{value === 0 &&
<TabContainer className="screening-items">
Test
</TabContainer>}
{value === 1 &&
<TabContainer className="screening-items">
Second info
</TabContainer>}
{value === 2 && <TabContainer className="screening-items">Item Three</TabContainer>}
{value === 3 && <TabContainer className="screening-items">Item Four</TabContainer>}
{value === 4 && <TabContainer className="screening-items">Item Five</TabContainer>}
{value === 5 && <TabContainer className="screening-items">Item Six</TabContainer>}
{value === 6 && <TabContainer className="screening-items">Item Seven</TabContainer>}
</div>
</div>
);
}