react-native-multiple-select存储提交时选择的项目

drnojrws  于 6个月前  发布在  React
关注(0)|答案(3)|浏览(46)

我正在使用react-native-multiple-select,并试图创建一个允许用户选择多个选项的菜单,然后将他们选择的选项记录到数组中。目前,我的代码是:

onSelectedItemsChange = selectedItems => {
    this.setState({ selectedItems });
    console.log('submit button was pressed')
  };

  render() {
    const { selectedItems } = this.state;
    return (
      <View style={{ flex: 1 }}>
        <MultiSelect
          hideTags
          items={items}
          uniqueKey="id"
          ref={(component) => { this.multiSelect = component }}
          onSelectedItemsChange={this.onSelectedItemsChange}
          selectedItems={selectedItems}
          selectText="Pick Items"
          searchInputPlaceholderText="Search Items..."
          onChangeInput={ (text)=> console.log(text)}
          altFontFamily="ProximaNova-Light"
          tagRemoveIconColor="#CCC"
          tagBorderColor="#CCC"
          tagTextColor="#CCC"
          selectedItemTextColor="#CCC"
          selectedItemIconColor="#CCC"
          itemTextColor="#000"
          displayKey="name"
          searchInputStyle={{ color: '#CCC' }}
          submitButtonColor="#CCC"
          submitButtonText="Submit"
        />
        <View>

字符串
问题出在提交按钮上。我只想记录用户按下提交后选择的项目。
目前,它记录每次选择新项时按下按钮,这对将所选项存储到另一个数组中没有帮助。
任何帮助都是最好的。

xxslljrj

xxslljrj1#

您可以这样做以获取包含选定项目对象的数组:

for(var i = 0; i < selectedItems.length; i++){
this.state.selectedItemsArray.push(this.state.gasOptions[selectedItems[i]])
}
console.log(selectedItems);

字符串
这将输出所选项目的数组,其中每个项目包含唯一键和显示名称。

6yoyoihd

6yoyoihd2#

第一个月
我注意到selectedItemsArray只存储键,所以它是一个键数组,而不是对象列表。因此,如果你的键是id,你想把它推到数组中,而不是所有的对象。

3yhwsihp

3yhwsihp3#

我以前也遇到过同样的问题。现在我解决了它。按照以下步骤操作:
1.转到node_modules/react-native-multi-select/index.d.ts添加代码
onSubmitclick: ((items: any[]) => void),导出接口内部MultiSelectProps {}
x1c 0d1x的数据
1.进入lib/react-native-multi-select.js添加代码
onSubmitclick: PropTypes.func,内部的静态propTypes ={}



1.转到函数**_submitSelection()**并在其中添加代码
const {selectedItems, onSubmitclick } = this.props; onSubmitclick(selectedItems);



1.现在你返回你的多选标签add
onSubmitclick={(value1) => getSubmit(value1)}



1.使用此函数捕获您选择的值
const getSubmit = (value1) => { console.log('new submit value***', value1) }

相关问题