RNI和Expo(Snack)中Animated.Value的不同值

时间:2018-04-21 11:42:50

标签: reactjs react-native expo react-animated

我在RNI和Expo Snack Application中获得了不同的Animated.Value结果。

我创建了一个新的RNI应用程序。在App.js中我在构造函数中添加了一个新的Animated.Value,然后我在render方法中使用console.log。

控制台结果是:

Animated Value:  AnimatedValue {_children: Array(0), _value: 0, _startingValue: 0, _offset: 0, _animation: null, …}

当我在Expo Snack中做同样的事情时,控制台结果是:

Animated Value: 0

这是为什么?如何访问RNI App中的值?即使在react-native文档中也使用该模式。所以我有点惊讶。我在监督什么吗?

这是Code auf die App.js:

import React, { Component } from 'react';
import {
  Platform,
  StyleSheet,
  Text,
  View,
  Animated,
} from 'react-native';

const instructions = Platform.select({
  ios: 'Press Cmd+R to reload,\n' +
    'Cmd+D or shake for dev menu',
  android: 'Double tap R on your keyboard to reload,\n' +
    'Shake or press menu button for dev menu',
});

type Props = {};
export default class App extends Component<Props> {
  constructor(props) {
    super(props);
    this.state = { left: new Animated.Value(0) };
  }

  render() {
    console.log('Animated Value: ', this.state.left);
    return (
      <Animated.View style={styles.container}>
        <Text style={styles.welcome}>
          Welcome to React Native!
        </Text>
        <Text style={styles.instructions}>
          To get started, edit App.js
        </Text>
        <Text style={styles.instructions}>
          {instructions}
        </Text>
      </Animated.View>
    );
  }
}

1 个答案:

答案 0 :(得分:1)

Expo Snack SDK中提到的,错误,日志和状态监听器的flowTypes已定义为here

// `console.log`, `console.warn`, `console.error`
export type ExpoDeviceLog = {
  device: ExpoDevice,
  method: 'log' | 'warn' | 'error',
  message: string,
  arguments: any, // the raw fields that were passed to the console.* call
};

flowTypes判断,因为他们期望消息为String,因此它显示为值而不是对象。 如果您记录

    const animated = new Animated.Value(0)
    console.log(JSON.stringify(animated))

您将获得相同的结果。