Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

nuke-checkbox

nuke144Apache-2.02.3.12

复选框组件

nuke, checkbox, weex, rax, nuke-checkbox

readme

Checkbox

  • category: UI
  • chinese: 复选框组件
  • type: UI component

Weex-Nuke UI

nuke-checkbox@ALINPM nuke-checkbox@ALINPM

Usage

The Checkbox component is similar to the Switch component. There are only two states of opening and closing, but have different using scenes.

Switch is usually used for single scattered configuration item settings, but Checkbox is usually used for the selection of multiple data in a data source.

API

Parameters Description Type Default
size SIZE string medium(or small)
checked checked, or not boolean null
defaultChecked default checked boolean false
disabled disable, or not boolean false
onChange the callback function when the state changes function(checked,e) null
type checkbox type string normal(list,empty)
touchStyle touch area style object {}

Checkbox.Group

Parameters Description Type Default
dataSource data source array []
value selected items array []
onChange the callback function when the state changes function(checked,e) null
style the group style in whole container Object {}
reverse reverse the show order of label and checkbox bool false
renderItem custom render method for each item function ()
groupItemStyle each item's wrap style object {}

Usage in controlled or uncontrolled

All input and interaction class components have controlled usage and uncontrolled usage.

  • Controlled usage: component status is affected by external incoming props. The external props changes, so that the components will change, such as:
constructor() {
    super();
    this.state = {
        checked: true
    }
}
change = (value) => {
    this.setState({
        checked:!value
    });
}
//...
render(){
    return (<Checkbox checked={this.state.checked} onChange={this.change}/>)
}
  • Uncontrolled usage: The component itself changes freely and changes what is externally changed through the event, such as:
change = (value) => {
    console.log('switch change to: ',value);
}
//...
render(){
    return (<Checkbox defaultChecked={true} onChange={this.change}/>)
}

Demo Reference

Scan the qr code to preview( use apps like Taobao, Qianniu, Tmall... )

How to use

  • install
// Switch to your rax project

npm i nuke-checbox --save

// following that demo, maybe you also need this...
// tnpm i nuke-view nuke-page nuke-text --save
  • example
/** @jsx createElement */
import { createElement, Component, render } from 'rax';
import View from 'nuke-view';
import Text from 'nuke-text';
import Checkbox from 'nuke-checkbox';
import Page from 'nuke-page';
const themeOrange = '#ff6600';
let App = class NukeDemoIndex extends Component {
  constructor() {
    super();
    this.state = {
      checked: false
    };
  }

  onChange(value) {
    console.log(value);
  }
  changeControl(value) {
    this.setState({
      checked: value
    });
  }

  render() {
    return (
      <Page title="Checkbox">
        <Page.Intro sub="普通样式" />
        <View style={styles.demo_item}>
          <View style={styles.group_item}>
            <Checkbox
              defaultChecked={true}
              size="small"
              onChange={this.onChange.bind(this)}
            />
            <Text>苹果</Text>
          </View>
          <View style={styles.group_item}>
            <Checkbox size="small" onChange={this.onChange.bind(this)} />
            <Text>梨</Text>
          </View>
        </View>
        <Page.Intro sub="空心样式" />
        <View style={styles.demo_item}>
          <View style={styles.group_item}>
            <Checkbox
              defaultChecked={true}
              type="empty"
              size="small"
              onChange={this.onChange.bind(this)}
            />
            <Text>苹果</Text>
          </View>
          <View style={styles.group_item}>
            <Checkbox
              size="small"
              type="empty"
              onChange={this.onChange.bind(this)}
            />
            <Text>梨</Text>
          </View>
        </View>
        <Page.Intro sub="list 样式" />
        <View style={[styles.demo_item, { flexDirection: 'column' }]}>
          <View style={styles.group_item}>
            <Checkbox
              defaultChecked={true}
              type="list"
              size="small"
              onChange={this.onChange.bind(this)}
            />
            <Text>浙江省杭州市余杭区</Text>
          </View>
          <View style={styles.group_item}>
            <Checkbox
              size="small"
              type="list"
              onChange={this.onChange.bind(this)}
            />
            <Text>浙江省杭州市临安市</Text>
          </View>
        </View>

        <Page.Intro main="自定义大小颜色" />
        <View style={styles.demo_item}>
          <Checkbox
            style={{ width: '30rem', height: '30rem', fontSize: '20rem' }}
            defaultChecked={true}
            size="small"
            checkedStyle={{ backgroundColor: themeOrange }}
            unCheckedStyle={{ backgroundColor: themeOrange }}
            onChange={this.onChange.bind(this)}
          />
          <Checkbox
            defaultChecked={true}
            size="small"
            type="empty"
            checkedStyle={{ borderColor: themeOrange, color: themeOrange }}
            unCheckedStyle={{ borderColor: themeOrange }}
            onChange={this.onChange.bind(this)}
          />
          <Checkbox
            defaultChecked={true}
            size="small"
            type="list"
            checkedStyle={{ color: themeOrange }}
            onChange={this.onChange.bind(this)}
          />
        </View>
      </Page>
    );
  }
};

const styles = {
  demo_item: {
    width: 750,
    marginTop: 30,
    backgroundColor: '#ffffff',
    flexDirection: 'row',
    alignItem: 'center',
    paddingLeft: 12
  },
  group_item: {
    height: 104,
    flexDirection: 'row',
    borderBottomWidth: '2rem',
    borderBottomStyle: 'solid',
    borderBottomColor: '#F7F8FA',
    alignItems: 'center'
  }
};

render(<App />);

The Other

changelog

Change Log

All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.

2.3.12 (2019-09-26)

Note: Version bump only for package nuke-checkbox

2.3.11 (2019-09-26)

Note: Version bump only for package nuke-checkbox

2.3.10 (2019-09-26)

Note: Version bump only for package nuke-checkbox

2.3.9 (2019-09-26)

Note: Version bump only for package nuke-checkbox

2.3.8 (2019-09-25)

Note: Version bump only for package nuke-checkbox

2.3.7 (2019-07-24)

Note: Version bump only for package nuke-checkbox

2.3.6 (2019-07-19)

Note: Version bump only for package nuke-checkbox

2.3.5 (2019-07-02)

Note: Version bump only for package nuke-checkbox

2.3.4 (2019-05-10)

Note: Version bump only for package nuke-checkbox

2.3.3 (2019-04-28)

Note: Version bump only for package nuke-checkbox

2.3.2 (2019-01-15)

Note: Version bump only for package nuke-checkbox

2.3.1 (2019-01-15)

Note: Version bump only for package nuke-checkbox

2.3.0 (2018-11-14)

Bug Fixes

Features

  • 将UI组件与功能库拆分 (f5d0a2c)

2.2.29 (2018-10-09)

Bug Fixes

2.2.28 (2018-10-09)

Note: Version bump only for package nuke-checkbox

2.2.27 (2018-10-08)

Note: Version bump only for package nuke-checkbox

2.2.26 (2018-10-08)

Note: Version bump only for package nuke-checkbox

2.2.25 (2018-10-08)

Note: Version bump only for package nuke-checkbox

2.2.24 (2018-10-08)

Note: Version bump only for package nuke-checkbox

2.2.23 (2018-10-08)

Note: Version bump only for package nuke-checkbox

2.2.22 (2018-10-08)

Note: Version bump only for package nuke-checkbox

2.2.21 (2018-10-08)

Note: Version bump only for package nuke-checkbox

2.2.20 (2018-10-08)

Note: Version bump only for package nuke-checkbox

2.2.19 (2018-10-08)

Note: Version bump only for package nuke-checkbox

2.2.18 (2018-09-30)

Note: Version bump only for package nuke-checkbox

2.2.17 (2018-09-26)

Note: Version bump only for package nuke-checkbox

2.2.16 (2018-09-19)

Note: Version bump only for package nuke-checkbox

2.2.15 (2018-09-19)

Note: Version bump only for package nuke-checkbox

2.2.14 (2018-09-11)

Note: Version bump only for package nuke-checkbox

2.2.13 (2018-09-11)

Note: Version bump only for package nuke-checkbox

2.2.12 (2018-09-11)

Note: Version bump only for package nuke-checkbox

2.2.11 (2018-09-06)

Note: Version bump only for package nuke-checkbox

2.2.10 (2018-09-06)

Note: Version bump only for package nuke-checkbox

2.2.9 (2018-09-06)

Note: Version bump only for package nuke-checkbox

2.2.8 (2018-09-05)

Note: Version bump only for package nuke-checkbox

2.2.7 (2018-09-05)

Note: Version bump only for package nuke-checkbox

2.2.6 (2018-09-04)

Note: Version bump only for package nuke-checkbox

2.2.5 (2018-09-04)

Note: Version bump only for package nuke-checkbox

2.2.4 (2018-09-04)

Note: Version bump only for package nuke-checkbox

2.2.3 (2018-08-24)

Note: Version bump only for package nuke-checkbox

2.2.2 (2018-08-23)

Note: Version bump only for package nuke-checkbox

2.2.1 (2018-08-23)

Note: Version bump only for package nuke-checkbox

2.2.0 (2018-08-23)

Bug Fixes

Features

2.1.10 (2018-08-20)

Note: Version bump only for package nuke-checkbox

2.1.9 (2018-08-20)

Note: Version bump only for package nuke-checkbox

2.1.8 (2018-08-20)

Note: Version bump only for package nuke-checkbox

2.1.6 (2018-08-15)

Note: Version bump only for package nuke-checkbox

2.1.3 (2018-08-15)

Note: Version bump only for package nuke-checkbox

2.1.1 (2018-08-15)

Note: Version bump only for package nuke-checkbox