为什么根据选择不改变图标颜色?

时间:2016-12-30 18:34:55

标签: javascript reactjs react-native

我有一个带有两个标签的滑动tabView。标题颜色会根据是否选中选项卡而更改。它在#9B9B9B'之间轻弹。 (lightGrey)未经选择的&#396768' (darkGrey)为选中。

我还会在标题旁边呈现一个图标。我希望图标颜色也根据选择的标签进行更改。

出于某种原因,不会发生这种情况,无论是否选择了标签,图标的颜色都会保持未选中状态。

我该如何解决这个问题?我的代码如下。谢谢。

  _renderLabel = (props: any) => ({ route, index }) => {
    const inputRange = props.navigationState.routes.map((x, i) => i);
    const outputRange = inputRange.map(
      inputIndex => inputIndex === index ? '#666768' : '#9B9B9B');
    const color = props.position.interpolate({
      inputRange,
      outputRange,
    });

    return (
      <View style={styles.labelContainer}>
        <FontAwesome
          name={route.title === 'New' ? 'clock-o' : 'fire'}
          size={14}
          color={color === '#666768' ? '#666768' : '#9B9B9B'}
        />
        <Animated.Text style={[styles.label, { color }]}>
          {route.title}
        </Animated.Text>
      </View>
    );
  };

2 个答案:

答案 0 :(得分:0)

react(网络)中,您使用的是style,而不是color。我搜索了一下,我认为react-native可能是相同的。

所以,而不是:

color={color === '#666768' ? '#666768' : '#9B9B9B'}

尝试...

style={{ color: color === '#666768' ? '#666768' : '#9B9B9B' }}

答案 1 :(得分:0)

原来我必须改变它:

while (true) {
                clientSocket = serverSocket.accept();
                is = new DataInputStream(clientSocket.getInputStream());
                message = is.readLine();
                check=0;
                if (message != null) {
                    System.out.println("recieved :" + message);
                    if (message.contains("Dead")) {
                        System.out.println("Player is Dead");

                    else{
                        System.out.println("akakak");
                    }

                }
                else{
          // the code here should run if the socket does not receive any message
                    System.out.println("noeoeo");
                }

            }