代码之家  ›  专栏  ›  技术社区  ›  Bomber

React native picker,获取所选选项文本

  •  2
  • Bomber  · 技术社区  · 6 年前

    我正在使用react native picker进行如下选择:

    <Picker
           selectedValue={student}
           label="Student"
           style={styles.picker}
           onChange={this.onStudentChange}
           options={
                    categories
                    .find(category => {
                         return category.id == year;
                    })
                    .options.find(category => {
                         return category.id == group;
                    })
                    .options
           }
    />
    

    然后在我的click处理程序中分派和操作,其中 e id 学生人数:

      onStudentChange(e) {
            if (e !== "") {
                this.props.setStudent(e);
            }
      }
    

    如何获取选定的选项文本和值?

    1 回复  |  直到 6 年前
        1
  •  0
  •   ischenkodv    6 年前

    您可以通过 id 从选项列表中。之后,可以从选定的选项中获取文本。在下面的示例中,我将获取选项的代码移动到一个单独的函数中,该函数也用于 onStudentChange :

    getOptions(year, group) {
        return categories
                .find(category => {
                     return category.id == year;
                })
                .options.find(category => {
                     return category.id == group;
                })
                .options
    }
    
    onStudentChange(e) {
        if (e !== "") {
            // Find option by id and get text.
            const text = this.getOptions().find(entry => entry.id === e).text;
            this.props.setStudent(e);
        }
    }
    
    render() {
        ...
        <Picker
           selectedValue={student}
           label="Student"
           style={styles.picker}
           onChange={this.onStudentChange}
           options={this.getOptions(year, group)}
        />
    }