【发布时间】:2017-03-19 02:27:41
【问题描述】:
将动画值 (fadeAnim) 保留为状态属性更好还是将其设置为类属性?
例子:
class ModalShade extends React.Component {
fadeAnim = new Animated.Value(0)
render() {
return (
<Animated.View
cls="bg-black absolute-fill"
style={{ opacity: this.fadeAnim }}
/>
)
}
componentDidMount() {
Animated.spring(
this.fadeAnim, {
toValue: 0.6,
tension: 100,
friction: 20
}
).start();
}
}
说明:
我知道状态用于反应的和解。 React-native'Animated 值绕过通常的 render(),因此即使没有状态更改,组件也会更新。
在我的shouldComponentUpdate 中比较Animated.Value 没有任何意义,这就是我将其移出状态的原因。
【问题讨论】:
-
您终于找到了存储动画值的最佳做法吗?我遇到了您的问题,因为我遇到了同样的困境,官方文档中的示例使用状态来存储 Animated 值,但这似乎适得其反。
-
我使用实例变量。
-
是的,这对我来说很奇怪。
react-native中的大多数官方示例都将Animated.Value存储在状态中。对我来说,如果我们在组件属性中存储Animated.Value,我认为它们中的大多数应该没问题。 -
我开始意识到官方的 react-native 文档、支持和代码质量都不是很好。
标签: reactjs react-native ecmascript-6