Нарушение инварианта: нарушение инварианта: outputRange не может включать #ffffff. (#ffffff, #ааа2d7,#ааа2d7)

Я получаю эту ошибку даже при изменении: inputIndex === i ? 255: 0 для inputIndex === i ? "#ffffff": "#aaa2d7".

цель: когда первая вкладка активна, цвет заголовка должен быть белым "#ffffff", а другие вкладки должны быть "#aaa2d7"

    const inputRange = props.navigationState.routes.map((x, i) => i);
    return (
      <View style={{backgroundColor: "#5243af",flexDirection: 'row', height: Metrics.HEIGHT * 0.1, elevation: 0}}> 
        { props.navigationState.routes.map((route, i) => {
          const color = Animated.color(
            Animated.round(
              Animated.interpolate(props.position, {
                inputRange,
                outputRange: inputRange.map(inputIndex =>
                  inputIndex === i ? "#ffffff" : "#aaa2d7"
                ),
              })
            ),
            0,
            0
          );
          return (
            <TouchableOpacity
              style={{flex: 1, alignItems: 'center', borderLeftColor: "#9a91d2", borderLeftWidth: 1/* , borderBottomWidth: 3, borderBottomColor "red" */}}
              key={i}
              onPress={() => {
                //this.changeTabs(route.key)
                this.setState({ index: i })
              }}>
              {this._getTabBarIcon(route.key)}
              <Animated.Text style={{ color, fontSize: Fonts.moderateScale(15), marginBottom: 10 }}>{route.title.toLocaleUpperCase()}</Animated.Text>
            </TouchableOpacity>
          );
        })}
      </View>
    );
  }

благодарю вас


person hanae    schedule 25.11.2019    source источник
comment
Вам могут понадобиться значения outputRange в формате Animated.color(r, g, b) вместо "#RRGGBB"   -  person Zaytri    schedule 25.11.2019
comment
@zaytrix спасибо за помощь, я изменил outputRange, как вы сказали: outputRange: inputRange.map(inputIndex => inputIndex === i ? Animated.color(255, 255, 255) : Animated.color(170,170,173) ), на данный момент ошибок нет, но активная вкладка по-прежнему красная, а другие черные, я хочу активировать вкладку белого цвета, а другие - rgb (170, 170, 173). )   -  person hanae    schedule 26.11.2019


Ответы (1)


Вы можете попробовать что-то вроде этого.

const scrollY = new Animated.Value(0);

const bgColor = Animated.interpolate(scrollY, {
                inputRange: [0, HEADER_HEIGHT], 
                outputRange: [Animated.color(56, 180, 113, 0),                        Animated.color(56, 180, 113, 1)]
                })

person Tim Garcia    schedule 30.03.2020