【发布时间】:2019-03-02 03:09:27
【问题描述】:
我是原生反应新手,所以这个问题可能看起来微不足道。它更多地与将函数作为参数传递有关,我对胖箭头函数与将函数作为直接参数传递感到困惑。我正在为我的动画使用 Animated.View,我编写了一个用于动画值的通用函数,如下所示:
animateToFadeState(stateName, newStateValue, onAnimEndCallback) {
const hasCallback = onAnimEndCallback !== undefined;
Animated.timing(stateName, {
toValue: newStateValue,
duration: 3000
}).start(
hasCallback ? this.onAnimEndCallback() : null;
);
}
在这里,您可以将 stateName 传递给 animate 和 newState 以及可选的回调。我面临的问题是如何传递回调,因为它需要一个粗箭头函数作为参数传递。
我认为调用这个函数有多种方式(回调函数的传递方式都不同)。
- animateToFadeState(this.state.abc, 1, () => {this.myFunction()})
- animateToFadeState(this.state.abc, 1, this.myFunction())
- animateToFadeState(this.state.abc, 1, () => this.myFunction())
- animateToFadeState(this.state.abc, 1, this.myFunction)
这些似乎都不起作用,因为我的回调在动画开始时立即被调用。我不太明白这里出了什么问题,也不确定传递函数与胖箭头函数之间的区别。
【问题讨论】:
标签: javascript animation react-native callback