【发布时间】:2017-06-18 21:56:32
【问题描述】:
我正在尝试创建一个可重用的 Feature 组件,该组件将根据我从父 FeatureList 组件传递给它的内容来呈现文本和图像。
当我尝试从组件中动态地 require() 图像时,它会引发错误,但是当我需要文件顶部的不变图像时,这很好。我不确定这是否是 Webpack、Typescript 或 React 组件生命周期的问题。
我已经解决并随后从https://github.com/Microsoft/TypeScript-React-Starter#typescript-react-starter 弹出了这个 Microsoft/TypeScript-React-Starter
父组件:
import * as React from 'react';
import SingleFeature from './SingleFeature';
var data = {
header: 'I am header copy',
image: '../path/to/image.png'
};
function FeatureList() {
return (
<div>
<SingleFeature
image={data.image}
header={data.header}
/>
</div>
);
}
export default FeatureList;
子组件:
import * as React from 'react';
const horizontalLine = require('../path/to/genericImage.png'); //THIS WORKS FINE
export interface Props {
image: string;
header: string;
}
function SingleFeature({ header, image }: Props) {
const dynamicallyRequiredImage = require(image) //THROWS ERROR
return (
<div>
<h1>{header}</h1> //-->this accesses props
<img src={horizontalLine} /> //-->this displays
<img src={dynamicallyRequiredImage} /> //THROWS ERROR
</div>
);
}
export default SingleFeature;
我得到的错误是:“未捕获的错误:找不到模块”。 在 webpackMissingModule..." 之后是 34 多个其他 React 特定错误的折叠堆栈。
我是 TypeScript 的新手,绝不是 WebPack 专家。如果有人知道为什么只有动态需要的图像才会发生这种情况,或者可以为我指出正确的方向,我将不胜感激!
【问题讨论】:
标签: javascript reactjs typescript webpack