npm i @malik.aliyev.94/react-native-checkbox
import CheckBox from '@malik.aliyev.94/react-native-checkbox';
<CheckBox />
Property | Optional | Default | Description |
---|---|---|---|
style | yes | empty | style for a container |
disabled | yes | false | whether checkbox disabled or not |
name | yes | empty | input name |
value | yes | empty | input value |
checked | yes | false | whether the input checked or not initially |
onChange | yes | empty | function to call on change event |
content | yes | 'append' | 'append' or 'prepend' children |
componentChecked | yes | default | input checked view |
componentNotChecked | yes | default | input not checked view |
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import CheckBox from '@malik.aliyev.94/react-native-checkbox';
const Heading = ({title}) => (
<Text style={{fontSize: 20, fontWeight: 'bold', color: '#AAA', marginTop: 30}}>{title}</Text>
);
export default class App extends React.Component {
render() {
return (
<View style={styles.container}>
<Heading title="This is a checkbox :unchecked" />
<CheckBox />
<Heading title="This is a checkbox :checked" />
<CheckBox checked={true} />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import CheckBox from '@malik.aliyev.94/react-native-checkbox';
const Heading = ({title}) => (
<Text style={{fontSize: 20, fontWeight: 'bold', color: '#AAA', marginTop: 30}}>{title}</Text>
);
export default class App extends React.Component {
render() {
return (
<View style={styles.container}>
<Heading title="Children :appended" />
<CheckBox content='append'>
<Text style={{padding: 5}}>Sample Text</Text>
</CheckBox>
<Heading title="Children :prepended" />
<CheckBox checked={true} content='prepend'>
<Text style={{padding: 5}}>Sample Text</Text>
</CheckBox>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
This is a previous example with styled container
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import CheckBox from '@malik.aliyev.94/react-native-checkbox';
const Heading = ({title}) => (
<Text style={{fontSize: 20, fontWeight: 'bold', color: '#AAA', marginTop: 30}}>{title}</Text>
);
export default class App extends React.Component {
render() {
return (
<View style={styles.container}>
<Heading title="Children :appended" />
<CheckBox content='append' style={{flexDirection: 'row'}}>
<Text style={{padding: 5}}>Sample Text</Text>
</CheckBox>
<Heading title="Children :prepended" />
<CheckBox checked={true} content='prepend' style={{flexDirection: 'row'}}>
<Text style={{padding: 5}}>Sample Text</Text>
</CheckBox>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
...
render() {
return (
<View style={styles.container}>
<Heading title="Checkbox :disabled" />
<CheckBox disabled style={{flexDirection: 'row'}}>
<Text style={{padding: 5}}>Sample Text</Text>
</CheckBox>
<CheckBox disabled={true} style={{flexDirection: 'row'}} checked={true}>
<Text style={{padding: 5}}>Sample Text</Text>
</CheckBox>
</View>
);
}
...
import React from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import CheckBox from '@malik.aliyev.94/react-native-checkbox';
const Heading = ({title}) => (
<Text style={{fontSize: 20, fontWeight: 'bold', color: '#AAA', marginTop: 30}}>{title}</Text>
);
export default class App extends React.Component {
constructor() {
super();
this.state = {
checked: true,
};
}
onChange(input) {
console.log(input);
}
onPress() {
this.setState({
checked: !this.state.checked
});
}
render() {
return (
<View style={styles.container}>
<Heading title="Full example" />
<CheckBox content='append' style={{flexDirection: 'row'}} checked={this.state.checked} name='thisIsMyInputName' value='thisIsMyInputValue' onChange={this.onChange.bind(this)}>
<Text style={{padding: 5}}>Sample Text</Text>
</CheckBox>
<Button onPress={this.onPress.bind(this)} title='Toggle checkbox' />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});
Object {
"checked": false,
"name": "thisIsMyInputName",
"value": "thisIsMyInputValue",
}
You can create your custom view using componentChecked and componentNotChecked properties. See the example below:
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
import CheckBox from '@malik.aliyev.94/react-native-checkbox';
const ComponentChecked = (props) => (
<View style={{padding: 10, borderRadius: 6, backgroundColor: 'blue'}}>
<Text style={{color: '#FFF'}}>{props.label}</Text>
</View>
);
const ComponentNotChecked = (props) => (
<View style={{padding: 10, borderRadius: 6, backgroundColor: '#f2f2f2'}}>
<Text style={{color: '#333'}}>{props.label}</Text>
</View>
);
const Heading = ({title}) => (
<Text style={{fontSize: 20, fontWeight: 'bold', color: '#AAA', marginTop: 30}}>{title}</Text>
);
export default class App extends React.Component {
constructor() {
super();
this.state = {
loremChecked: true,
};
}
onChange_1(...props) {
console.log(props);
}
onChange_2(param, input) {
console.log(param);
console.log(input);
}
render() {
return (
<View style={styles.container}>
<Heading title="Example 1" />
<CheckBox style={{flexDirection: 'row'}} checked={false} onChange={this.onChange_1.bind(this, 'Param 1')} componentChecked={<Text>C H E C K E D</Text>} componentNotChecked={<Text>N O T C H E C K E D</Text>}>
<Text style={{paddingLeft: 20}}>Lorem ipsum</Text>
</CheckBox>
<Heading title="Example 2" />
<CheckBox checked onChange={this.onChange_2.bind(this, 'Param 1')} componentChecked={<ComponentChecked label="Checked" />} componentNotChecked={<ComponentNotChecked label="Not Checked" />} />
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
});