🔥 新プロジェクトのご紹介 t0ggles - 究極のプロジェクト管理ツール! 🔥

チェックボックス React コンポーネント

チェックボックス コンポーネント

以下のコンポーネントが含まれています。

  • チェックボックス

チェックボックス Props

名前デフォルト説明
checkedbooleanfalse

チェックボックスの入力がチェックされているかどうかを定義します

colorsobject

Tailwind CSS カラークラスを持つオブジェクト

colors.bgCheckedIosstring'bg-primary'
colors.bgCheckedMaterialstring'bg-md-light-primary dark:bg-md-dark-primary'
colors.borderCheckedIosstring'border-primary'
colors.borderCheckedMaterialstring'border-md-light-primary dark:border-md-dark-primary'
colors.borderIosstring'border-black border-opacity-30 dark:border-white dark:border-opacity-30'
colors.borderMaterialstring'border-md-light-outline dark:border-md-dark-outline'
componentstring'label'

コンポーネントのHTML要素

defaultCheckedbooleanfalse

チェックボックスの入力がチェックされているかどうかを定義します(非制御コンポーネントの場合)

disabledbooleanfalse

チェックボックスの入力が無効かどうかを定義します

indeterminatebooleanfalse

チェックボックスの入力が不確定状態かどうかを定義します

namestring

チェックボックス入力の名前

readOnlybooleanfalse

チェックボックスの入力が読み取り専用かどうかを定義します

touchRipplebooleantrue

マテリアルテーマでタッチリップル効果を有効にします

valueany

チェックボックス入力の値

onChangefunction(e)

チェックボックスの状態が変更されたときにイベントがトリガーされます

チェックボックスリスト

チェックボックスリストは個別のコンポーネントではなく、<List>および<ListItem>コンポーネントを使用する特定のケースです。

<List>
  {/* Additional "label" prop on ListItem */}
  <ListItem
    label
    title="Books"
    media={
      <>
        {/* Pass Checkbox to list item media */}
        <Checkbox component="div" name="my-checkbox" />
      </>
    }
  />
  <ListItem
    label
    title="Movies"
    media={
      <>
        {/* Pass Checkbox to list item media */}
        <Checkbox component="div" name="my-checkbox" />
      </>
    }
  />
</List>

Checkbox.jsx
import React, { useState } from 'react';
import {
Page,
Navbar,
NavbarBackLink,
Checkbox,
BlockTitle,
Block,
List,
ListItem,
} from 'konsta/react';
export default function CheckboxPage() {
const [checked1, setChecked1] = useState(false);
const [checked2, setChecked2] = useState(true);
// Group
const [group, setGroup] = useState(['Books']);
const toggleGroupValue = (value) => {
if (group.includes(value)) group.splice(group.indexOf(value), 1);
else group.push(value);
setGroup([...group]);
};
// Indeterminate
const [movies, setMovies] = useState(['Movie 1']);
const onMovieChange = (e) => {
const value = e.target.value;
if (e.target.checked) {
movies.push(value);
} else {
movies.splice(movies.indexOf(value), 1);
}
setMovies([...movies]);
};
const onMoviesChange = () => {
if (movies.length === 1 || movies.length === 0) {
setMovies(['Movie 1', 'Movie 2']);
} else if (movies.length === 2) {
setMovies([]);
}
};
// Media
const [media, setMedia] = useState(['Item 1']);
const toggleMediaValue = (value) => {
if (media.includes(value)) media.splice(media.indexOf(value), 1);
else media.push(value);
setMedia([...media]);
};
return (
<Page>
<Navbar
title="Checkbox"
/>
<BlockTitle>Inline</BlockTitle>
<Block strongIos outlineIos>
<p>
Lorem{' '}
<Checkbox
name="checkbox-1"
checked={checked1}
onChange={(e) => setChecked1(e.target.checked)}
/>{' '}
ipsum dolor sit amet, consectetur adipisicing elit. Alias beatae illo
nihil aut eius commodi sint eveniet aliquid eligendi{' '}
<Checkbox
name="checkbox-2"
checked={checked2}
onChange={(e) => setChecked2(e.target.checked)}
/>{' '}
ad delectus impedit tempore nemo, enim vel praesentium consequatur
nulla mollitia!
</p>
</Block>
<BlockTitle>Checkbox Group</BlockTitle>
<List strongIos outlineIos>
<ListItem
label
title="Books"
media={
<Checkbox
component="div"
name="demo-checkbox"
checked={group.includes('Books')}
onChange={() => toggleGroupValue('Books')}
/>
}
/>
<ListItem
label
title="Movies"
media={
<Checkbox
component="div"
name="demo-checkbox"
checked={group.includes('Movies')}
onChange={() => toggleGroupValue('Movies')}
/>
}
/>
<ListItem
label
title="Food"
media={
<Checkbox
component="div"
name="demo-checkbox"
checked={group.includes('Food')}
onChange={() => toggleGroupValue('Food')}
/>
}
/>
<ListItem
label
title="Drinks"
media={
<Checkbox
component="div"
name="demo-checkbox"
checked={group.includes('Drinks')}
onChange={() => toggleGroupValue('Drinks')}
/>
}
/>
</List>
<BlockTitle>Indeterminate State</BlockTitle>
<List strongIos outlineIos>
<ListItem
label
title="Movies"
name="demo-checkbox"
media={
<Checkbox
checked={movies.length === 2}
indeterminate={movies.length === 1}
onChange={onMoviesChange}
/>
}
>
<ul className="ps-12">
<ListItem
label
title="Movie 1"
media={
<Checkbox
name="demo-checkbox"
value="Movie 1"
checked={movies.indexOf('Movie 1') >= 0}
onChange={onMovieChange}
/>
}
/>
<ListItem
label
title="Movie 2"
media={
<Checkbox
name="demo-checkbox"
value="Movie 2"
checked={movies.indexOf('Movie 2') >= 0}
onChange={onMovieChange}
/>
}
/>
</ul>
</ListItem>
</List>
<BlockTitle>With Media Lists</BlockTitle>
<List strongIos outlineIos>
<ListItem
label
title="Facebook"
after="17:14"
subtitle="New messages from John Doe"
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sagittis tellus ut turpis condimentum, ut dignissim lacus tincidunt. Cras dolor metus, ultrices condimentum sodales sit amet, pharetra sodales eros. Phasellus vel felis tellus. Mauris rutrum ligula nec dapibus feugiat. In vel dui laoreet, commodo augue id, pulvinar lacus."
media={
<Checkbox
component="div"
name="demo-media-checkbox"
checked={media.includes('Item 1')}
onChange={() => toggleMediaValue('Item 1')}
/>
}
/>
<ListItem
label
title="John Doe (via Twitter)"
after="17:11"
subtitle="John Doe (@_johndoe) mentioned you on Twitter!"
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sagittis tellus ut turpis condimentum, ut dignissim lacus tincidunt. Cras dolor metus, ultrices condimentum sodales sit amet, pharetra sodales eros. Phasellus vel felis tellus. Mauris rutrum ligula nec dapibus feugiat. In vel dui laoreet, commodo augue id, pulvinar lacus."
media={
<Checkbox
component="div"
name="demo-media-checkbox"
checked={media.includes('Item 2')}
onChange={() => toggleMediaValue('Item 2')}
/>
}
/>
</List>
</Page>
);
}
コードは以下に基づいてライセンスされています MIT.
2022 © Konsta UI by nolimits4web.