2017-08-06 70 views
2

我有一個問題作出反應,本地風格不重渲染上反應原住民

我的狀態:的Windows 10 - 超V時,Visual Studio模擬器的Android。

我在頁面上有一個組件(顯示在哪裏點擊)。

當我點擊時,座標被髮送到組件中。

< ClickAnimation x = {item.x} y = {item.y} /> 

組件必須先執行以下操作:

state = { 
    scaleAnim: 2 
}; 

,當我點擊第二次,this.state.scaleAnim改爲0.001

componentWillReceiveProps(nextProps) { 
    if (nextProps.x != this.props.x) { 
     this.setState({scaleAnim: 0.001}) 
    } 
} 

,那就是渲染:

render() { 
     if (this.state.scaleAnim) { 
      return <Animated.View 
       key={this.props.y * this.props.x} 
       style={{ 
       zIndex: 10, 
       borderColor: "blue", 
       borderRadius: 400, 
       borderWidth: 1, 
       position: "absolute", 
       top: this.props.y, 
       left: this.props.x, 
       width: 60, 
       height: 60, 
       backgroundColor: "red", 
       transform: [ 
        { 
         scaleY: this.state.scaleAnim 
        }, { 
         scaleX: this.state.scaleAnim 
        } 
       ] 
      }}> 
       <Text>{this.state.scaleAnim}</Text> 
      </Animated.View> 
     } else { 
      return <View/> 
     }; 
    } 

有了這個代碼,我有以下的事情:

The Style doesn't re-redender

的改變的setState因爲文本的值更改。但不是應用的風格。

你知道爲什麼嗎?

回答

3

我認爲這可能與FB bug https://github.com/facebook/react-native/issues/6278有關 - 嘗試將刻度設置爲0.10.01,並嘗試何時它仍然適用於您以及何時中斷。

+0

噢!我在github上看到了這個問題,這就是爲什麼我寫0.001而不是0 ...而0.01這個工作。謝謝 !!真奇怪,它與0.01而不是0.001一起工作 – Wandrille

+0

我的猜測是如果你的視圖尺寸乘以縮放因子小於1px,它什麼都不做(原始大小)。樂意效勞。 – sodik