Introdução
Neste laboratório, aprenderemos como criar uma checkbox (caixa de seleção) com estado e seleção múltipla usando React. Este laboratório irá guiá-lo através do processo de renderização de uma lista de checkboxes, atualização do seu estado e passagem do valor/valores selecionados para o componente pai usando uma função callback. Ao final deste laboratório, você será capaz de criar um componente de checkbox reutilizável que pode ser usado em qualquer projeto React.
Checkbox com Estado e Seleção Múltipla
index.htmlescript.jsjá foram fornecidos na VM. Em geral, você só precisa adicionar código ascript.jsestyle.css.
Este código renderiza uma lista de checkboxes e envia o(s) valor(es) selecionado(s) para o componente pai usando uma função callback. Aqui estão os passos para criá-lo:
- Use o hook
useState()para inicializar a variável de estadodatacom a propoptions. - Crie uma função
toggleque atualiza a variável de estadodatacom a(s) opção(ões) selecionada(s) e chama a função callbackonChangecom elas. - Mapeie a variável de estado
datapara gerar checkboxes individuais e seus rótulos. Associe a funçãotoggleao handleronClickde cada checkbox.
const MultiselectCheckbox = ({ options, onChange }) => {
const [data, setData] = React.useState(options);
const toggle = (index) => {
const newData = [...data];
newData[index] = {
...newData[index],
checked: !newData[index].checked
};
setData(newData);
onChange(newData.filter((item) => item.checked));
};
return (
<>
{data.map((item, index) => (
<label key={item.label}>
<input
type="checkbox"
checked={item.checked || false}
onChange={() => toggle(index)}
/>
{item.label}
</label>
))}
</>
);
};
Aqui está um exemplo de como usá-lo:
const options = [{ label: "Item One" }, { label: "Item Two" }];
ReactDOM.createRoot(document.getElementById("root")).render(
<MultiselectCheckbox
options={options}
onChange={(selected) => {
console.log(selected);
}}
/>
);
Por favor, clique em 'Go Live' no canto inferior direito para executar o serviço web na porta 8080. Em seguida, você pode atualizar a aba Web 8080 para visualizar a página web.
Resumo
Parabéns! Você concluiu o laboratório Checkbox com Estado e Seleção Múltipla. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.