开发者问题收集

类型错误:未定义不是对象(评估“style.width”)

2017-11-20
21675

我想将汽车图像放在背景图像上,仅此而已。

import React, { Component } from 'react';
import {
...
  Animated,
  ImageBackground
} from 'react-native';


export default class App extends Component {
  render() {
    return (
      <ImageBackground imageStyle={styles.container} source={require('./src/assets/img/road1.jpg')}>
       <Animated.Image style={styles.car} source={require('./src/assets/img/car2.png')}>
       </Animated.Image>
      </ImageBackground>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    position: 'relative',
    resizeMode: 'cover'
  },
  car:{
    position:'absolute',
    width:100,
    height:50
  }
});

当我运行此代码时,出现错误屏幕; 在此处输入图像描述 实际上消息很清楚;

Type error:undefined is not an object(evaluating 'style.width')

好的,但为什么它需要“style.width”,即使我使用了 resizeMode:'cover' 我也在样式对象中设置了宽度和高度属性,仍然出现相同的错误。我该如何解决这个问题?

1个回答

您的错误来自 ImageBackground.js。

Your_Error

您正在将容器样式作为属性提供给 ImageBackground,这需要其中存在宽度。

您正在通过无效属性 imageStyle 提供样式。它应该作为 style 提供。>

尝试:

<ImageBackground style={styles.container} source={require('./src/assets/img/road1.jpg')}>
       <Animated.Image style={styles.car} source={require('./src/assets/img/car2.png')}>
       </Animated.Image>
</ImageBackground>
Manoj Prabhakar
2017-11-21