【问题标题】:Cannot use variable name inside Node.js require不能在 Node.js 中使用变量名
【发布时间】:2019-05-01 16:33:44
【问题描述】:

我想在本地将图像导入到我的 react 本机应用程序中。

render() {

    console.log(this.props.image);   //   this logs '../../images/avatartest.jpg' every time

    let test = require (this.props.image!);   //    bang is required because of interface
    return (
        <ImageBackground
            source={test}
        >
        </ImageBackground>
    );
}

运行此代码会产生此错误:

有没有办法接受有字符串的变量名?

【问题讨论】:

  • 你在要求require (this.props.image!)中添加了!
  • @RahulSharma 需要这个 bang 才能消除智能感知错误。不管有没有,都是一样的错误。

标签: node.js react-native require


【解决方案1】:

所有需求都必须是可静态分析的。这意味着您不能在 require 中使用变量。

您可以手动将图像捆绑到您的应用中,并使用变量将起作用。

<Image source={{ uri: this.props.image }} />

【讨论】:

    【解决方案2】:

    您在这里尝试做的是动态导入不受支持的图像,最好的方法是预先要求图像并将所需的值作为道具传递。假设你的组件的父组件是 ImageView

    export default const images = {
       img1:require('IMAGE_URL')
    }
    
    //import this in the your view and use it as the prop value 
    <ImageView image={images.img1}></ImageView>
    

    上述方法将确保打包器可以定位到图像。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-27
      • 1970-01-01
      • 2015-02-16
      • 1970-01-01
      • 2013-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多