javascript Image组件上的React-native失败propType

sqyvllje  于 2023-09-29  发布在  Java
关注(0)|答案(3)|浏览(80)

我刚刚开始使用React-native,并且对创建Web应用程序的React有相当不错的把握。我在这里遇到了一个令人困惑的问题,在使用react for the web时从未发生过。
基本上,我正在渲染一个组件,它的图像是通过Map其父组件中的对象数组动态生成的。

export default class ImageComponent extends React.Component {
  render() {
    return (
        <Image source={this.props.source}/>
    );
  }
};

及其父零部件:

export default class MainComponent extends React.Component {
  constructor(props) {
    super(props);
   this.state = {
      images:[
        { src: './src/images/1.png'},
        { src: '/src/images/2.png'},
        { src: './src/images/3.png'}
      ]
    }
   }

  render() {
    let images = this.state.images.map((image) => {
      return(<ImageComponent source={image.src}  />);
    })

    return (
      <View>
        {images}
      </View>
    );
  }
};

在设备模拟器中,我得到以下错误:
“警告:失败的propType:无效的prop 'source'提供给'Image'检查'BasicComponent'的呈现方法”

有谁知道这里会发生什么吗?

wbgh16ku

wbgh16ku1#

您应该要求本地资源或使用带有uri键的对象。
MainComponent中:

this.state = {
  images:[
    require('./src/images/1.png'),
    require('./src/images/2.png'),
    require('./src/images/3.png')
  ]
}

或者在BasicComponent中:

return (
  <Image 
    source={{uri: this.props.source}}
  />
);
yi0zb3m4

yi0zb3m42#

你应该使用uri来设置源图像

return (
  <Image 
    source={{uri: 'https://reactnative.dev/docs/assets/p_cat2.png'}}
  />
);
c0vxltue

c0vxltue3#

<Image source= {{uri: "https://miro.medium.com/v2/resize:fit:1024/1*QY5S4senfFh-mIViSi5A_Q.png"}} style = {{width:100,height:100}}/>

在源代码中添加uriname,它将工作。

相关问题