2017-04-12 32 views
0

我使用的是來自Native Base的真棒<Picker>組件。React Native:onPress觸發另一個onPress

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?

+0

但您沒有在Picker上定義onPress?你能用onPress代碼更新你的問題嗎? –

+0

默認情況下,onPress行爲是基於本地組件構建的 – Norfeldt

+0

下面是一個解決方案:https://github.com/facebook/react-native/issues/7817#issuecomment-264837382 –

回答

1

在Android上,您可以設置道具mode="dropdown"以顯示錨定到選取器視圖的下拉列表。這在右側呈現箭頭(檢查gif from the NativeBase docs)。 iOS遵循與Android不同的設計原則,因此不幸的是,iOS不會在iOS中運行。

NativeBase使用反應本機Picker在引擎蓋下,但我沒有看到任何記錄的任何文件強制性地從外部使用refs打開選擇器。你總是可以深入src代碼,但似乎是最後的措施。