React native 反应本机选择器,当从选择器中选择一个选项时,屏幕转到下一个屏幕
我是新来的本地人,我的代码就像当我点击“管理员”或登录页面中的任何其他类别并按下登录按钮时,屏幕会转到管理员页面,当点击“协调员”时,屏幕会转到协调员页面。 这是我的选择器代码:React native 反应本机选择器,当从选择器中选择一个选项时,屏幕转到下一个屏幕,react-native,React Native,我是新来的本地人,我的代码就像当我点击“管理员”或登录页面中的任何其他类别并按下登录按钮时,屏幕会转到管理员页面,当点击“协调员”时,屏幕会转到协调员页面。 这是我的选择器代码: <Picker selectedValue={this.state.role} style={{height: 50, width: 300}} onValueChange={(itemValue, itemIndex) => this.setState({role: i
<Picker
selectedValue={this.state.role}
style={{height: 50, width: 300}}
onValueChange={(itemValue, itemIndex) =>
this.setState({role: itemValue})
}>
<Picker.Item label="Admin" value="ad" />
<Picker.Item label="Coordinator" value="cod" />
</Picker>
显然,问题出在我的情况下,因为它没有读取值 您正在设置
role
的状态,即this.setState({role:itemValue})
因此,您必须检查this.state.role
if(this.state.role === 'ad')
{
this.props.navigation.navigate('AdminHome');
}
确保将role的初始值设置为Picker中的第一个值,否则处理程序函数将跳转到else情况
i、 e
this.state={role:'ad'}
我建议对loginRoles()使用箭头函数来自动绑定this
。i、 e如下:loginRoles=()=>{//logic goes here}代码>我也尝试过你的方法,但当我按下登录按钮时,它会直接转到else case并显示“无效登录”,而不检查条件我是否编辑了答案,我应该检查值,而不是标签。但是'ad'在状态中没有定义为:this.state={role:['Admin','Coordinator'],}您不必将初始状态设置为数组,使用this.state={role:'ad'}
if(this.state.role === 'ad')
{
this.props.navigation.navigate('AdminHome');
}