触摸图标时,React-Native onPress不起作用

时间:2018-11-30 19:29:31

标签: react-native react-native-vector-icons

我正在使用react-native-element 创建一个button group,并嵌入了react-native-vector-icons 中的图标。

问题是,当触摸图标时,onPress不会被触发

    constructor(props) {
      super(props);    
      this.state = { selectedIndex: 0 };   
      this.SetSelected = this.SetSelected.bind(this);
    }


    SetSelected(index) {
      this.setState({ selectedIndex: index });
    }

    return(
    <ButtonGroup
      selectedIndex={this.state.selectedIndex}
      onPress={this.SetSelected}
      selectedButtonStyle={{ backgroundColor: 'blue' }}
      buttons={[
        {
          element: () => (
            <Icon.Button
              name="slack"
              style={{ backgroundColor: 'white' }}
              color={'black'}
              size={30}
              title="Inbox"
            >
              <Text style={{ color: 'black', fontSize: 15, textAlignVertical: 'center', textAlign: 'center' }}                   
              >
                All
              </Text>
            </Icon.Button>
          ),
        })

2 个答案:

答案 0 :(得分:2)

Thanks to Kyle Roach

原因是 因为我使用的是Icon.Button可触摸的。因此,当我尝试点击以更改ButtonGroup时,触摸事件将被Icon.Button捕获,而不是buttonGroup的按钮。

我应该使用Icon而不是Icon.Button

答案 1 :(得分:1)

尝试使其具有功能。

onPress={() => {this.SetSelected()}}

如果它不起作用,请提供this.SetSelected函数。