【问题标题】:Get text from react-native-multiple-select从 react-native-multiple-select 获取文本
【发布时间】:2019-12-11 15:34:34
【问题描述】:

我使用 react-native-multiple-select 来选择项目并且它工作正常,但是它存储在状态中的值是 id。我想获取所选项目的文本。

const items = [{
id: '92iijs7yta',
name: 'Ondo'
 }, {
 id: 'a0s0a8ssbsd',
name: 'Ogun'
}, {
id: '16hbajsabsd',
name: 'Calabar'
}, {
id: 'nahs75a5sg',
name: 'Lagos'
 }, {
id: '667atsas',
name: 'Maiduguri'
}, {
id: 'hsyasajs',
name: 'Anambra'
}, {
id: 'djsjudksjd',
name: 'Benue'
}, {
id: 'sdhyaysdj',
name: 'Kaduna'
}, {
id: 'suudydjsjd',
name: 'Abuja'
}
];

和国家

constructor(props) {
super(props);
this.state = { 
 selectedItems : [], 
  }; }

多选组件

          <MultiSelect
              hideTags
              items={items}
              uniqueKey="id"
              ref={(component) => { this.multiSelect = component }}
              onSelectedItemsChange={this.onSelectedItemsChange}
              selectedItems={selectedItems}
              selectText="Companions"
              searchInputPlaceholderText="Search Items..."
              onChangeInput={ (text)=> console.log(text)}// am not getting this on the console.
               tagRemoveIconColor="#CCC"
              tagBorderColor="#CCC"
              tagTextColor="#CCC"
              selectedItemTextColor="#CCC"
              selectedItemIconColor="#CCC"
              itemTextColor="#000"
              displayKey="name"
              searchInputStyle={{ color: '#CCC' }}
              submitButtonColor="#CCC"
              submitButtonText="Submit"
            /> 

以及设置 selectedItems 的函数

   onSelectedItemsChange = selectedItems => {
    this.setState({ selectedItems }); 
    console.log(this.state.selectedItems);//here am getting ids ,i want to get the selected   item test,store it in array and and send to php server
  };

【问题讨论】:

    标签: javascript reactjs react-native expo


    【解决方案1】:

    使用onSelectedItemObjectsChange 而不是onSelectedItemChange

    <MultiSelect
        ...
        onSelectedItemObjectsChange={this.onSelectedItemObjectsChange}
        ... />
    

    这样,您将收到整个对象,而不仅仅是密钥,因此,您将能够检索您的 name 属性。

    onSelectedItemObjectsChange = selectedItems => {
      console.log(selectedItems); // should display [{id: '92iijs7yta', name: 'Ondo'}, ...]
    };
    

    参考the documentation

    【讨论】:

    • 感谢您的快速回复,但实际上我使用的是 react-native-multiple-select 而不是 react-native-sectioned-multi-select 但让我现在试试后者看看
    • 很好,我已经使用了你的答案,现在我可以看到这两个值,我试图将其标记为答案,但我不会这样做。
    • 最后一件事我如何使用没有孩子的数组
    • “没有孩子”是什么意思?
    • 好的,如果对您有帮助,请随时接受我的回答,点击绿色勾号:)
    猜你喜欢
    • 2012-08-03
    • 2018-12-21
    • 2021-06-06
    • 2020-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-05-07
    • 2018-07-09
    • 2019-01-07
    相关资源
    最近更新 更多