React Native 一個組件styles BUG

來源:互聯網
上載者:User

標籤:

‘use strict‘;var React = require(‘react-native‘);var {  StyleSheet,  PanResponder,  View,  Text} = React;var CIRCLE_SIZE = 40;var PanResponderExample = React.createClass({componentWillMount: function() {  this._panResponder = PanResponder.create({  onStartShouldSetPanResponder: ()=>true,  onMoveShouldSetPanResponder: ()=>true,  onPanResponderGrant: ()=>{},  onPanResponderMove: this._handlePanResponderMove,  onPanResponderRelease: ()=>{},  onPanResponderTerminate: ()=>{},  });  this._previousLeft = 20;  this._previousTop = 84;  this._circleStyles = {  left: this._previousLeft,  top: this._previousTop,  };},render: function() {  return (  <View style={{backgroundColor: ‘#6495ed‘,flex: 1}}>  <View style={[styles.circle,this._circleStyles]}        {...this._panResponder.panHandlers} />  <Text style={ styles.bottomText}>    _previousLeft: {this._previousLeft},        _previousTop: {this._previousTop},    left: {this._circleStyles.left},    top: {this._circleStyles.top}  </Text>  </View>  );},_handlePanResponderMove: function(e: Object, gestureState: Object) {  //**can‘t apply style left&top  //this._circleStyles.left = this._previousLeft + gestureState.dx;  //this._circleStyles.top = this._previousTop + gestureState.dy;  //**can apply style left&top  this._circleStyles = {    left: this._previousLeft + gestureState.dx,    top: this._previousTop + gestureState.dy  };  this.setState();}});var styles = StyleSheet.create({circle: {  width: CIRCLE_SIZE,  height: CIRCLE_SIZE,  borderRadius: CIRCLE_SIZE / 2,  backgroundColor: ‘blue‘,  position: ‘absolute‘}});module.exports = PanResponderExample;

 



在函數_handlePanResponderMove中使用:

  this._circleStyles.left = this._previousLeft + gestureState.dx;  this._circleStyles.top = this._previousTop + gestureState.dy;

 

組件樣式<View style={[styles.circle,this._circleStyles]}>
沒有發生變化,必須使用
  this._circleStyles = {    left: this._previousLeft + gestureState.dx,    top: this._previousTop + gestureState.dy  };
環境react 0.14.0 winx64

先記錄問題再研究

React Native 一個組件styles BUG

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.