Estou trabalhando em um projeto e, ao clicar na aba, ela deveria mudar de página, mas por algum motivo não muda. Só travou na página de visão geral. Estou fazendo algo errado?
import React, {useState} from 'react';
import Tab from 'react-bootstrap/Tab';
import Tabs from 'react-bootstrap/Tabs';
import ClientOverview from '../client_dashboard/client_components/overview';
import ClientImpact from '../client_dashboard/client_components/impacts';
import Box from '@mui/material/Box';
import InputLabel from '@mui/material/InputLabel';
import FormControl from '@mui/material/FormControl';
import Select from '@mui/material/Select';
const ClientDashContainer = props => {
const [value, setValue] = useState('overview');
const handleChange = (event, newValue) => {
setValue(newValue);
};
return(
<div style={{padding:'2%', backgroundColor:'#f5f5f5', minHeight:'95vh'}}>
<Box>
<FormControl style={{width:'15vw', minWidth:'fit-content'}}>
<InputLabel id="demo-simple-select-label">Sites</InputLabel>
<Select labelId="demo-simple-select-label" id="demo-simple-select" label="Sites">
</Select>
</FormControl>
</Box>
<Tabs defaultActiveKey="overview" className="mb-3" justify value={value} onChange={handleChange}>
<Tab value = 'overview' eventKey="overview" title="Overview"/>
<Tab value = 'impacts' eventKey="impacts" title="Impacts"/>
</Tabs>
{value === 'overview' && <ClientOverview/>}
{value === 'impacts' && <ClientImpact/>}
</div>
);
}
export default ClientDashContainer;
Tente depurar sua
onChange
função, pois no React Bootstrap ela mostrará queeventKey
você clicou.O
Tabs
componente usa umonSelect
retorno de chamada para manipular a seleção de uma aba, que recebe o valor da chave da aba. ConsulteTabs
a documentação da API para obter mais detalhes.Atualize para usar
onSelect={handleChange}
e atualizehandleChange
para receber a tecla tab.Exemplo:
Sugiro também usar o
TabPane
componente para lidar com a renderização condicional do conteúdo da sua guia.Exemplo:
Isso também permite que você deixe o
Tabs
componente se controlar, ou seja, ele não é controlado e gerencia seu próprio estado, ovalue
estado eonSelect
o manipulador não são necessários.