アイテムのリスト(それぞれがイメージから作成されています)があり、それぞれのサイズを順番に増やしたいと思います。したがって、私は順番に各アイテムのインデックスでアクションを開始しています。現在のアイテムでは、アクションで発生したインデックスも独自のものであるとみなされるたびに、サイズを大きくするアニメーションが開始されます。私render()
方法で新しいプロパティが受信されたときにアニメーションが開始されない
componentWillReceiveProps(nextProps) {
if(nextProps.index == this.props.ordinalNumber) {
console.log("STARTING ANIMATION!!!");
Animated.timing(this.animatedValue, {
toValue: 1.5,
duration: 1000
}).start();
}
}
、私は高さとanimatedValue
に基づいて幅を調整しています。
const animatedStyle = {width: 0.5 * this.props.dimensions.windowWidth * parseInt(JSON.stringify(this.animatedValue)),
height: 0.5 * this.props.dimensions.windowHeight * parseInt(JSON.stringify(this.animatedValue))};
私はrender()
からこれを返しています:
<View>
<Animated.Image
source={{uri: this.props.imageUrl}}
style={[this.getImageStyle(), animatedStyle]}>
</Animated.Image>
</View>
this.animatedValue
は、次のようにコンストラクタで初期化される:問題は、画像の大きさが(でも増加していないされていることを
this.animatedValue = new Animated.Value(1);
"STARTING ANIMATION!!!"
が出力されますが、これは制御がcomponentWillReceiveProps
に達することを意味します)。
なぜアニメーションが発生しないのでしょうか?