ReactNative/Switch组件:onValueChange

sul*_*van 2 react-native

如果有人修改了交换机组件,我会尝试设置更改事件.方法是设计一个包含多个开关的视图,并允许用户设置每个通知的状态,这些状态最终将在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>
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

Fer*_*gre 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>
      );
  }
}
Run Code Online (Sandbox Code Playgroud)

请注意,它this.setState是异步的,因此您可以使用该方法提供的回调安全地读取其值.