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');
}