如果有人修改了切换组件,我就试图设置更改事件。方法是设计一个包含多个开关的视图,并允许用户设置每个通知的状态,这些状态最终将在POST api-call中结束。此外,我想从api-call加载初始值。
如何在我的onChangeFunction中访问状态(天气检查/取消选中)?如何使用他们的ID或名称获取元素? (与使用#mySwitch.setValue(true)的HTML / CSS相同?
给定代码:
class Settings extends Component {
onChangeFunction(type, props) {
Alert.alert("changed", "==> " + props.state)
}
render() {
return (
<View style={styles.container}>
<Switch onValueChange={this.onChangeFunction.bind(this, "TASK_CREATED", this.props)} value={this.state} />
</View>
);
}
}
答案 0 :(得分:5)
props
和state
概念之间存在混乱。你可以这样做:
class Settings extends Component {
state = {
taskCreated: false,
};
onChangeFunction(newState) {
this.setState(newState, () => Alert.alert("Changed", "==> " + this.state));
}
render() {
return (
<View style={styles.container}>
<Switch onValueChange={(value) => this.onChangeFunction({taskCreated: value})}
value={this.state.taskCreated}
/>
</View>
);
}
}
请注意this.setState
是异步的,因此您可以使用该方法提供的回调安全地读取其值。