【问题标题】:getting undefined selected value from dropdown in react native从反应原生的下拉列表中获取未定义的选定值
【发布时间】:2020-03-17 11:48:23
【问题描述】:

我刚开始学习 React Native。我想从 react-native 的下拉列表中获取选定的值。

我的构造函数

constructor(props){
      super(props);
      this.state = ({       
        PickerSelectedVal : ''
      })
}

在渲染中

render(){
      <Dropdown                 
                label="Select"
                options={["Op1","Op2"]}                     
                selectedValue={this.state.PickerSelectedVal}
                onSelect={(obj)=>this.changedemo({obj})}
      />
}

在函数中

 changedemo= (ob)=>{
      this.setState({PickerSelectedVal : ob});
      alert("Selected country is : " +ob.PickerSelectedVal);
      console.log(this.state.PickerSelectedVal);
      if (this.state.PickerSelectedVal === 1) {
          alert("Selected value is : " +ob.PickerSelectedVal);
      } 
      if(this.state.PickerSelectedVal === 0) {
alert("Selected value is : " +ob.PickerSelectedVal);
      }

  }

我试过很多次了。我想从下拉警报中获取选定的值,但它会打印出来。 所选值为:未定义。

【问题讨论】:

    标签: javascript reactjs react-native dropdown


    【解决方案1】:

    setState 是一个异步过程,因此当您打印它时,状态尚未设置。 添加这个

    this.setState({PickerSelectedVal : ob},()=>{console.log(this.state.PickerSelectedVal)});
    

    【讨论】:

    • 谢谢!我可以在控制台中显示。但在警报中没有显示价值。它显示未定义。
    【解决方案2】:

    你的 changedemo 函数必须如下所示;

      changedemo= (ob)=>{
          this.setState({PickerSelectedVal : ob.value});
          alert("Selected country is : " +ob.value);
          console.log(ob.value);
          // rest of the code
      }
    

    【讨论】:

    • 感谢您的回复! alert("选择的国家是:" +this.state.PickerSelectedVal);但它只显示所选国家是:空白值不打印任何值。
    • 在 changedemo 函数的第一行开始添加以下行 alert(ob);并在此处评论输出。
    • 您使用哪个包进行下拉?
    • 我添加了 alert(ob);它显示输出:[object Object]。我还可以在日志中显示对象输出:{ obj: { index: '0', value: 'Op1' } }
    • 好的,现在试试这个警报("Selected country is : " +ob.value);
    猜你喜欢
    • 2019-03-07
    • 1970-01-01
    • 2021-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多