我有一个类组件,其中包含一个反应原生的'Switch'。它目前看起来像这样:
colorswitch.js:
`export default class ColorTextSwitch extends React.Component{
constructor(...args) {
super(...args);
/**
* default state
*/
this.state = {
switch: {
colorTrueSwitchIsOn: true,
colorFalseSwitchIsOn: false,
colorBgTint: {
onColor: "#29E877",
offColor: "#00FFFF",
thumbBtnColor: "#FFFFFF"
},
},
}
}
updateSeason(value){
let falseSwitch = this.state.switch;
falseSwitch.colorFalseSwitchIsOn = value;
this.setState({ falseSwitch });
this.props.onChange = value;
}
render() {
return(
<View style={styles.rowView} underlayColor="#e4e4e4">
<View style={styles.itemContentView}>
<Image style={styles.switchIcon} source={this.state.switch.colorFalseSwitchIsOn ? require('../assets/icon_add.png') : require('../assets/icon_minus.png')} />
<Text style={styles.switchText}>{this.state.switch.colorFalseSwitchIsOn ? 'SIDE1' : 'SIDE2'}</Text>
</View>
<Switch
onValueChange={(value) => this.updateSeason(value)}
onTintColor={this.state.switch.colorBgTint.offColor}
tintColor={this.state.switch.colorBgTint.onColor}
style={styles.switch}
thumbTintColor={this.state.switch.thumbBtnColor}
value={this.state.switch.colorFalseSwitchIsOn} />
</View>
);
}
}
`
menu.js:
render(){
<ColorTextSwitch onChange={ (...args) => this.updateValue(...args) } />
...
updateValue(item){
this.setState({itemValue: item.value});
}
所以我无法解决的问题是数据如何从ColorTextSwitch移动到菜单,我可以在菜单上使用真正的假值。什么是传递这些数据的最佳方式?