UNPKG

weex-nuke

Version:

基于 Rax 、Weex 的高性能组件体系 ~~

187 lines (174 loc) 5.14 kB
#Checkbox 使用 - order: 0 - title_en: Checkbox usage --- ```js <NukePlayGround> // uncontrolled <Checkbox defaultChecked={true} onChange={doSomeThing} /> // controlled <Checkbox checked={State} onChange={doSomeThingAndChangeState} /> </NukePlayGround> ``` --- ```js /** @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'; import ThemeProvider from 'nuke-theme-provider'; const { StyleProvider } = ThemeProvider; let ThemeStyle = { Checkbox: { 'small-border-radius': '10%', 'normal-bg-color': '#ffffff', 'normal-bg-color-selected': '#DD4811', 'normal-border-color-selected': '#DD4811', 'empty-border-color': '#C3C5CD', 'empty-border-color-selected': '#5688D8' } }; const themeOrange = '#ff6600'; let App = class NukeDemoIndex extends Component { constructor() { super(); this.state = { checked: true }; } onChange(value) { console.log(value); } changeControl(value) { console.log(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={{ borderColor: themeOrange, 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.Intro main="使用theme替换" /> <StyleProvider style={ThemeStyle}> <View style={styles.demo_item}> <Checkbox style={{ width: '30rem', height: '30rem', fontSize: '20rem' }} checked={this.state.checked} size="small" onChange={this.changeControl.bind(this)} /> <Checkbox checked={this.state.checked} disabled size="small" type="empty" onChange={this.onChange.bind(this)} /> <Checkbox checked={false} size="small" type="list" onChange={this.onChange.bind(this)} touchStyle={{ width: 100 }} /> </View> </StyleProvider> </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 />); ```