如何在 react-native 中使用 dropdown/picker 制作 TextInput?

how to make TextInput with dropdown/picker in react-native?

我需要创建一个文本输入,在您开始输入时立即显示项目列表。并且只有那些项目(在列表中)可以 selected 作为输入选项。我尝试使用选择器组件,但我需要添加一个功能,用户可以在其中输入内容,与之相关的项目将显示在 dropdown/picker 中,然后用户将能够 select 其中一个作为选项。

如果你想用你自己的定制设计来制作它,那就用这样的东西:

  const [filterBankList, setFilterBankList] = useState([]);
  const [bankName, setBankName] = useState('');


            <TextInput
                  value={bankName}
                  placeholder={strings.selectBankName}
                  style = {styles.textInput}
                  onChangeText={filterBanks}
                />
                <FlatList
                  data={filterBankList}
                  renderItem={({item, index}) => (
                    <TouchableOpacity
                      onPress={() => onBankSelected(item?.bank)}>
                      <VariantsBox>
                        <Text
                          >
                          {item?.bank || ''}
                        </Text>
                      </VariantsBox>
                    </TouchableOpacity>
                  )}
                  keyExtractor={item => item.bank}
                />

在您的 filterBanks 方法中,您可以更新 filterBankList,以便使用银行名称更新平面列表。

const filterBanks = value => {
    
    let filterData =
      bankList && bankList?.length > 0
        ? bankList?.filter(data =>
            data?.bank?.toLowerCase()?.includes(value?.toLowerCase()),
          )
        : [];
    setFilterBankList([...filterData]);
  };

在您的 onBankSelected(当您选择其中一个选项时调用)内,然后只需设置银行名称并清空过滤器列表。

const onBankSelected = value => {
    setBankName(value);
    setFilterBankList([]);
  };

如果你想使用一些库来避免这种情况,你可以使用 react-native-searchable-dropdown