【发布时间】:2019-12-18 19:55:48
【问题描述】:
在我的 create-react-app 项目中,我正在构建一个包含图像的反应组件。 我想将确切的图像位置作为组件属性(或状态)传递。 在我的组件中,我正在使用 require,如下所示:
<Image
height={"100px"}
borderRadius={8}
src={require(this.props.image)}
alt="logo"
/>
这给出了这个错误:
Error: Cannot find module '../images/restaurants/sea.jpeg'
webpackEmptyContext
src/components sync:2
但是,当我将通过属性传递的确切值硬编码为 require 时,它确实有效!
<Image
height={"100px"}
borderRadius={8}
src={require("../images/restaurants/sea.jpeg")}
alt="logo"
/>
为什么这会如此违反直觉?最好的解决方法是什么?
【问题讨论】:
-
如果你真的需要
require你的图像作为base64 uri,它通常在组件定义之外完成。然后将 uri 字符串作为道具传递。在render函数中确实没有理由require。 Eslint 通常会警告您,因为您所做的不是“典型的”eslint.org/docs/rules/global-require
标签: javascript reactjs webpack require