Reactjs 如何使用native base&;在react native中实现开关组件上的on change值;导航5
我在更改开关的值时遇到问题,默认状态为boolen:false,因此当我将开关切换为true时,状态将立即变为false。我不知道问题出在哪里。 我阅读了一些文档,我们都使用onValueChange设置了相同的属性 我搞不清楚文件上说的是什么Reactjs 如何使用native base&;在react native中实现开关组件上的on change值;导航5,reactjs,react-native,Reactjs,React Native,我在更改开关的值时遇到问题,默认状态为boolen:false,因此当我将开关切换为true时,状态将立即变为false。我不知道问题出在哪里。 我阅读了一些文档,我们都使用onValueChange设置了相同的属性 我搞不清楚文件上说的是什么 它提到setstate不能调用 当我们以这种方式定义按钮时,选项中的this变量不是主屏幕实例,因此不能调用setState或其上的任何实例方法。这一点非常重要,因为希望标题中的按钮与标题所属的屏幕交互是非常常见的。那么,我们接下来将看看如何做到这一点
switchDriverOnlineValue: false,
导航标题:
DriverHeader() {
this.props.navigation.setOptions({
headerLeft: () => <View style={{ flexDirection: "row", justifyContent: "flex-end", paddingLeft: 20 }}>
<TouchableOpacity
onPress={() => this.props.navigation.openDrawer()}
>
<Icon type="font-awesome" name="user-circle-o" size={30} color="white" />
</TouchableOpacity>
</View>,
headerRight: () => <View style={{ flexDirection: "row", justifyContent: "flex-end" }}>
<Text adjustsFontSizeToFit numberOfLines={2} style={{ color: '#FFFF', fontSize: 18, fontWeight: 'bold' }}>Online</Text>
<Switch style={{ marginTop: 0 }} value={this.state.switchDriverOnlineValue} onValueChange={(value) => this.setState({ switchDriverOnlineValue: value })} />
</View>,
});
}
DriverHeader(){
this.props.navigation.setOptions({
标题左侧:()=>
this.props.navigation.openDrawer()}
>
,
头灯:()=>
在线 的
this.setState({switchDriverOnlineValue:value})}/>
,
});
}
电流输出:
日志:
在这里,每次更改开关的值时,您都必须切换switchDriverOnlineValue状态的上一个值,以便添加!设置为上一个值将使其工作
<Switch style={{ marginTop: 0 }} value={this.state.switchDriverOnlineValue} onValueChange={(value) => this.setState({ switchDriverOnlineValue: !value })} />
this.setState({switchDriverOnlineValue:!value})}/>
在这里,每次更改开关的值时,必须切换switchDriverOnlineValue状态的上一个值,以便添加!设置为上一个值将使其工作
<Switch style={{ marginTop: 0 }} value={this.state.switchDriverOnlineValue} onValueChange={(value) => this.setState({ switchDriverOnlineValue: !value })} />
this.setState({switchDriverOnlineValue:!value})}/>
这不起作用这不起作用