【问题标题】:React Native: onPress triggering another onPressReact Native:onPress 触发另一个 onPress
【发布时间】:2017-04-12 11:55:30
【问题描述】:

我正在使用来自Native Base 的很棒的<Picker> 组件。

import React, { Component } from 'react'
import {View, Picker, Text, Button, Icon} from 'native-base'

export default class PickSomething extends Component {
  constructor(props) {
    super(props)

    this.state = {
      SelectedValue: 'Foo',
    }
  }

  render() {
    return (
      <View >
        <Text>Type: </Text>

        <Picker
          iosHeader="Select a Type"
          selectedValue={this.state.SelectedValue}
          onValueChange={(value) => {
            this.setState(
              (prevState, props) => ({SelectedValue: value})
            )}}>

          <Picker.Item label="Foo" value="Foo" />

          <Picker.Item label="Bar" value="Bar" />
        </Picker>

        <Button
          onPress={ () => 
               //trigger the <Picker>onPress 
        }>
          <Icon name="ios-arrow-dropdown-circle-outline"/>
        </Button>
      </View>
    )}
}

我希望更明显的是这是一个下拉菜单。如何使Button onPrees 触发Picker 的onPress?

【问题讨论】:

  • 但是您没有在 Picker 上定义 onPress ?你能用 onPress 代码更新你的问题吗?
  • onPress 行为默认内置在原生组件中
  • 这里有一个解决方案:github.com/facebook/react-native/issues/…

标签: javascript reactjs react-native native-base


【解决方案1】:

在 Android 上,您可以设置属性 mode="dropdown" 以显示锚定到选择器视图的下拉菜单。这会在右侧呈现一个箭头(检查gif from the NativeBase docs)。 iOS 遵循与 Android 不同的设计准则,因此不幸的是,prop 在 iOS 中不起作用。

NativeBase 在引擎盖下使用了 react-native Picker,但我没有看到任何记录可以使用 refs 从外部强制打开选择器。您总是可以深入研究 src 代码,但这似乎是不得已而为之的措施。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2018-09-03
    • 1970-01-01
    相关资源
    最近更新 更多