私は反応ネイティブで作業する簡単なスクロールアニメーションを手に入れようとしています。シンプルなスクロールアニメーションを反応ネイティブで作業するには
私が達成しようとしているのは、コンポーネントがタップされた後、画面の右端からコンポーネントがスクロールすることです。
このクラスで何をしても、要素をタップするとエラーAttempted to assign to readonly property
が表示されますが、理由がわかりません。
animateOut
関数で発生することがわかる唯一の割り当ては、this.anim.offsetX
ですが、それはコンストラクタで明確に割り当てられているため、読み取り専用プロパティにすることはできません。
物事は私が試してみたが、助けていない:
は、国有財産のうち、アニメート値を取るので、animated.timingコールが直接国有財産を変異しようとしていません。
この値を変更したアニメーションが1つのみであるようにアニメーション呼び出しを簡略化します。
例:the reactjs animation docsを慎重に読んで、私が何をしているかを見てください。
スタックオーバーフローに関する既存の質問を探します。 this questionが見つかりましたが、エラー状態が私のコードに当てはまらないようです。
私が間違っていることを誰かに教えてもらえますか?あなたはXとYの値を設定し、Animated.View
にそれを与える必要があり
export default class SquareBlock extends Component {
constructor(props) {
super(props);
this.anim = {};
this.anim.offsetX = new Animated.Value(0);
}
animateOut() {
console.log("animating out");
console.log("X offset:",this.anim.offsetX)
Animated.timing(
this.anim.offsetX,
{ toValue: 120,
duration: 500
}
).start();
}
render() {
let content = this.props.content || "Tappable";
let offsetX;
offsetX = this.anim.offsetX;
return (
<Animated.View >
<TouchableNativeFeedback onPress={() => this.animateOut() }>
<View style={ [styles.outerBox, { "left": offsetX } ] } >
<Text style={ styles.text }> { content }</Text>
</View>
</TouchableNativeFeedback>
</Animated.View>
)
}
}