class MyClass extends React.Component {
constructor(props) {
super(props);
}
render() {
const [current, setCurrent] = React.useState('one')
return (
<section className="section">
<Tab value="one" active={current === 'one'} onClick={setCurrent}>One</Tab>
<Tab value="two" active={current === 'two'} onClick={setCurrent}>Two</Tab>
</section>
)
}
}
function component
.React.useState
в class component
? Это возможно? class MyClass extends React.Component {
constructor(props) {
super(props);
this.state = {
current: 'one'
};
}
render() {
return (
<section className="section">
<Tab value="one" active={this.state.current === 'one'} onClick={() => this.setState({current: 'one'})}>One</Tab>
<Tab value="two" active={this.state.current === 'two'} onClick={() => this.setState({current: 'two'})}>Two</Tab>
</section>
)
}
}
useState
- это хук, а хуки используются только в функциональных компонентах.import React from 'react';
function MyClass() {
const [current, setCurrent] = React.useState('one');
return (
<section className="section">
<Tab value="one" active={current === 'one'} onClick={setCurrent}>One</Tab>
<Tab value="two" active={current === 'two'} onClick={setCurrent}>Two</Tab>
</section>
)
}
setCurrent
самостоятельно подхватывает параметр из value
соответствующего компонента <Tab>
.