Javascript React本机自定义跨平台下拉列表选择元素

Javascript React本机自定义跨平台下拉列表选择元素,javascript,react-native,Javascript,React Native,我找得很彻底,运气不太好。我很难为我的应用程序实现一个简单的自定义下拉选择元素 我希望有一个跨平台的iOS和Android解决方案,比如这里提供的简单定制JS下拉列表 这是我应该用react原生视图和一些状态来创建自己的东西吗?我仍在试图了解哪些解决方案是不现实的。谁能给我举个专业项目的例子 我试图从这里避免使用本机选择器,因为我无法根据设计师的需要对它们进行样式设置 我试过这个软件包,但它似乎有问题的最新版本,我需要一些可靠的。 我也在看这个软件包,因为它似乎几乎完美地满足了我的需求,但它在2

我找得很彻底,运气不太好。我很难为我的应用程序实现一个简单的自定义下拉选择元素

我希望有一个跨平台的iOS和Android解决方案,比如这里提供的简单定制JS下拉列表

这是我应该用react原生视图和一些状态来创建自己的东西吗?我仍在试图了解哪些解决方案是不现实的。谁能给我举个专业项目的例子

我试图从这里避免使用本机选择器,因为我无法根据设计师的需要对它们进行样式设置

我试过这个软件包,但它似乎有问题的最新版本,我需要一些可靠的。
我也在看这个软件包,因为它似乎几乎完美地满足了我的需求,但它在2年内没有更新过

我在我的项目中使用了这个软件包,它工作得非常完美:

您可以使用onFocus道具通过单击将其下拉,而不是在用户首次键入时使用ondediting道具在用户选择选项时将其隐藏

这是我的完整实现供参考,我必须深入代码检查这些道具,因为文档中没有包含它

<Autocomplete
        data={filterNames()}
        placeholder={'Who are you here to see?'}
        onChangeText={item => setTextAndShowResults(item)}
        onFocus={() => setHideResults(false)}
        onEndEditing={() => setHideResults(true)}
        defaultValue={getDefaultValue()}
        keyExtractor={(item, i) => {
          return item.id;
        }}
        returnKeyType={'next'}
        listStyle={styles.listStyle}
        inputContainerStyle={styles.borderWidth0}
        style={styles.autoCompleteButtonStyle}
        hideResults={hideResults}
        renderItem={({ item, i }) => (
          <TouchableOpacity onPress={() => setTextAndHideResults(item)}>
            <Text style={styles.listTextStyle}>{item.name}</Text>
          </TouchableOpacity>
        )}
/>

我在我的项目中使用了这个,它非常有效:

您可以使用onFocus道具通过单击将其下拉,而不是在用户首次键入时使用ondediting道具在用户选择选项时将其隐藏

这是我的完整实现供参考,我必须深入代码检查这些道具,因为文档中没有包含它

<Autocomplete
        data={filterNames()}
        placeholder={'Who are you here to see?'}
        onChangeText={item => setTextAndShowResults(item)}
        onFocus={() => setHideResults(false)}
        onEndEditing={() => setHideResults(true)}
        defaultValue={getDefaultValue()}
        keyExtractor={(item, i) => {
          return item.id;
        }}
        returnKeyType={'next'}
        listStyle={styles.listStyle}
        inputContainerStyle={styles.borderWidth0}
        style={styles.autoCompleteButtonStyle}
        hideResults={hideResults}
        renderItem={({ item, i }) => (
          <TouchableOpacity onPress={() => setTextAndHideResults(item)}>
            <Text style={styles.listTextStyle}>{item.name}</Text>
          </TouchableOpacity>
        )}
/>

我的建议是使用一些东西,因为我通常会让实现更快,尽管正如您所说,在样式方面可能会有一个折衷

我最近遇到过几次这样的情况,我真的不得不努力寻找React Native的好的、维护的组件,但它们确实存在

最近,我成功地使用了react本地纸张。你可以考虑他们的手风琴下拉列表,但可能不适合风格,因为它遵循材料UI指南。
我的建议是使用一些东西,因为我通常会让实现更快,尽管正如您所说,在样式方面可能会有一个折衷

我最近遇到过几次这样的情况,我真的不得不努力寻找React Native的好的、维护的组件,但它们确实存在

最近,我成功地使用了react本地纸张。你可以考虑他们的手风琴下拉列表,但可能不适合风格,因为它遵循材料UI指南。
我也在看那个包,但它似乎是一个搜索输入,我需要一个HTML select元素类型的东西。@TaylorA.Leach检查编辑,还有一些他们在文档中没有提到的道具,可以让你这样设置。我让它工作起来了,看起来很好,只是我得到了组件WillReceiveProps折旧警告,这总是一个拖延。@TaylorA.Leach Ya我分叉并编辑了它来摆脱它。不管怎样,你能接受我的回答吗?努力把我的观点表达出来,谢谢!很酷,我只是把自己的组件作为输入渲染!我认为这会很有效!谢谢。我也在看那个包,但它似乎是一个搜索输入,我需要一个HTML选择元素类型的东西。@TaylorA.Leach检查编辑,还有一些他们在文档中没有提到的道具,可以让你这样设置。我让它工作起来了,看起来很好,只是我得到了组件WillReceiveProps折旧警告,这总是一个拖延。@TaylorA.Leach Ya我分叉并编辑了它来摆脱它。不管怎样,你能接受我的回答吗?努力把我的观点表达出来,谢谢!很酷,我只是把自己的组件作为输入渲染!我认为这会很有效!谢谢