Реактивный анимационный поворотный вид в onPress

Я пытаюсь повернуть свое изображение, когда оно нажимается, используя следующее:

this.myView.transitionTo({ rotate: '180deg' }, 200);

Я получаю ошибку:

Нарушение инварианта: Преобразование с ключом "rotate" должно быть строкой: {"rotate":null}

С помощью react-native-animatable библиотека. Не уверен, какой правильный синтаксис использовать для преобразования реквизита.

Благодарю.

2 ответа

Попробуйте это, это работает для меня.

import * as Animatable from "react-native-animatable";

export default class App extends Component {
  constructor() {
    super();
    this.state = {
      back: false
    };
  }
  render() {
    return (
      <TouchableOpacity
        onPress={() => this.setState({ back: !this.state.back })}
      >
        <Animatable.Image
          source={require("./assets/images/nike.png")}
          style={{ width: 100, height: 100 }}
          animation={{
            from: {
              rotate: this.state.back ? "180deg" : "0deg"
            },
            to: {
              rotate: this.state.back ? "180deg" : "0deg"
            }
          }}
        />
      </TouchableOpacity>
    );
  }
}

У меня это работает.

      import * as Animatable from "react-native-animatable";

export default class App extends Component {
  constructor() {
    super();
    this.state = {
      back: false
    };
  }
  render() {
    return (
      <TouchableOpacity
        onPress={() => this.setState({ back: !this.state.back })}
      >
        <Animatable.Image 
            animation = {{
                from: {
                    transform: [{ rotate: this.state.back?'0deg': '45deg'}]
                },
                to: {
                    transform: [{ rotate: this.state.back?'45deg' : "deg0"}]
                }
            }}
            source={icon} style={{}}  resizeMode = {"contain"}/> 
      </TouchableOpacity>
    );
  }
}
Другие вопросы по тегам