Ilj*_*lja 13 javascript animation reactjs react-native styled-components
我遇到了一个错误说明(通过iOS测试):
无法读取null的属性'getScrollableNode'
尝试使用react-native的Animated与侧面样式组件样式工具进行反应和反应原生.
这是<Logo />
我创建的组件的示例:
import React from 'react';
import { Image, Dimensions } from 'react-native';
import styled from 'styled-components/native';
const { width } = Dimensions.get('window');
const logoWidth = width - (width * 0.2);
const logoHeight = logoWidth * 0.4516;
const SLogoImage = styled(Image)`
width: ${logoWidth};
height: ${logoHeight};
`;
const Logo = ({ ...rest }) => (
<SLogoImage
source={require('../assets/logo.png')}
{...rest}
/>
);
export default Logo;
Run Code Online (Sandbox Code Playgroud)
然后我将此组件导入到我想要将动画应用于其中的一个场景中:
import React from 'react';
import { View, Animated } from 'react-native';
import Logo from '../components/Logo';
const ALogo = Animated.createAnimatedComponent(Logo);
class HomeScene extends Component {
state = {
fadeAnim: new Animated.Value(0)
}
componentDidMount() {
Animated.timing(
this.state.fadeAnim,
{ toValue: 1 }
).start()
}
render() {
<View>
<ALogo style={{ opacity: this.state.fadeAnim }} />
</View>
}
}
export default HomeScene;
Run Code Online (Sandbox Code Playgroud)
这导致上面提到的错误,尝试谷歌搜索它,并没有找到任何形式的解释它是什么.如有必要,请随时索取更多详细信息.
相关GitHub问题: https ://github.com/styled-components/styled-components/issues/341
Abd*_*oui 15
这个问题实际上与样式组件无关.相反,它是一个反应原生的
解决方法是使用class
而不是无状态组件.
class Logo extends React.Component {
render () {
return (
<SLogoImage
source={require('./geofence.gif')}
{...this.props}
/>
)
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个正在运行的github仓库.如果有人想要重现它,只需取消注释14-21行即可看到错误.
我认为问题来自Animated 尝试连接ref
到无状态组件.和无状态组件不能有裁判.
归档时间: |
|
查看次数: |
3206 次 |
最近记录: |