React-Native:如何更改后台第二个动作

时间:2017-04-03 22:22:43

标签: react-native reactive-programming react-native-ios react-native-router-flux react-android

我认为这个问题很简单,但我似乎无法弄明白。我使用react-native-router-flux库和NativeBase库作为按钮。

这是我的代码:

<Button transparent onPress={Actions.MainOne } style={{ width: 50, height: 50 }} >
       <Text>Option1</Text>
   </Button>

  <Button transparent onPress={Actions.MainTwo} style={{ width: 50, height: 50 }} >
           <Text>Option2</Text>
    </Button>

每当我按下按钮并且它处于活动状态时,我想更改按钮的背景颜色。如果我点击另一个按钮,那么我刚按下的按钮会获得背景,第一个按钮会回到正常的透明背景。我不确定如何向按钮添加两个动作。如果有人可以提供帮助我会很感激。我不需要使用按钮库,所以欢迎任何关于这个的想法!

谢谢!

1 个答案:

答案 0 :(得分:0)

我使用flux-router来浏览场景。这是按下按钮时改变按钮背景颜色的方法:

    constructor() {
      super();
      state = {
        color1: 'transparent',
        color2: 'transparent',
      }
    }

    setActive(button) {
      if (button === 1) {
        if (this.state.color1 === 'transparent') {
          this.setState({ 
            color1: 'red',
            color2: 'transparent' 
          })
        }
      } else {
        if (this.state.color2 === 'transparent') {
          this.setState({ 
            color2: 'red', 
            color1: 'transparent' 
          })
        }
      }
    }

    { . . . }

    <Button
        onPress={this.setActive.bind(this, 1)}
        style={{ width: 50, height: 50, backgroundColor: this.state.color1 }} 
    >
        <Text>Option1</Text>
    </Button>

    <Button 
        this.setActive.bind(this, 2)
        style={{ width: 50, height: 50, backgroundColor: this.state.color2 }} 
    >
       <Text>Option2</Text>
    </Button>