【问题标题】:Require(img path) not working/ cannot find module "." reactjs要求(img 路径)不起作用/找不到模块“。”反应
【发布时间】:2017-08-17 13:56:48
【问题描述】:

您好,我正在尝试使用 react.js 将一组图像从 this.state 映射到图像标签。我遇到了错误:“找不到模块'。'”

这是错误: 错误:找不到模块“。” webpackMissingModule src/components/thumbnails.js:26

 23 | }
  24 | render(){
  25 |  const thumbnailimg = this.state.thumbnail_vids.map((img,i)=>{
> 26 |      let image = require(img);
  27 |      return(<img key={i}  className="thumbimg" src={image}/>)
  28 |     })
  29 |  return(

这里是完整的代码:thumbnails.js

import React, { Component } from "react";
import { render } from "react-dom";

class Thumbnails extends Component {
    constructor(props){
        super(props);
        this.state = {
            thumbnail_vids: ['../thumbnails/asthma_1.jpeg','../thumbnails/asthma_2.jpeg','../thumbnails/asthma_3.jpeg']
        }
    }
    render(){
        const thumbnailimg = this.state.thumbnail_vids.map((img,i)=>{
            let image = require(img);
            return(<img key={i}  className="thumbimg" src={image}/>)
        })
        return(
            <div>
                <span className="thumbtable">
                <img src={require("../thumbnails/asthma_1.jpeg")} />
                    {thumbnailimg}
                </span>
            </div>
        )
    }
}

export default Thumbnails;

这是我的 src 文件夹的项目结构(尽管我已经抽象了与手头问题无关的任何内容):

        ├── App.css
        ├── App.js
        ├── App.test.js
        ├── components
        │   ├── header.js
        │   ├── likebutton.js
        │   ├── thumbnails.js
        │   └── topicselect.js
        ├── index.css
        ├── index.js
        ├── registerServiceWorker.js
        ├── thumbnails
        │   ├── asthma_1.jpeg
        │   ├── asthma_2.jpeg
        │   ├── asthma_3.jpeg
        │   ├── copd_1.jpeg
        │   ├── copd_2.jpeg
        │   ├── copd_3.jpeg
        │   ├── diabetes_1.jpeg
        │   ├── diabetes_2.jpeg
        │   ├── diabetes_3.jpeg
        │   ├── emphysema_1.jpeg
        │   ├── emphysema_2.jpeg
        │   ├── emphysema_3.jpeg
        │   ├── hyperlipidemia_1.jpeg
        │   ├── hyperlipidemia_2.jpeg
        │   ├── hyperlipidemia_3.jpeg
        │   ├── hypertension_1.jpeg
        │   ├── hypertension_2.jpeg
        │   ├── hypertension_3.jpeg
        │   ├── narcolepsy_1.jpeg
        │   ├── narcolepsy_2.jpeg
        │   ├── narcolepsy_3.jpeg
        │   ├── pneumonia_1.jpeg
        │   ├── pneumonia_2.jpeg
        │   └── pneumonia_3.jpeg

我正在使用 create-react-app

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    尝试将 require 语句移动到您的状态,如下所示:

    this.state = {
      thumbnail_vids: [
        require('../thumbnails/asthma_1.jpeg')
      ]
      ...
    

    【讨论】:

    • 哇!您已经解决了我的道具的导入问题。谢谢!!!!
    • 很高兴看到这种cmets!
    【解决方案2】:

    想通了,解决方案: 需要 this.state 中的图像,而不是 map 函数中的图像

    import React, { Component } from "react";
    import { render } from "react-dom";
    
    class Thumbnails extends Component {
        constructor(props){
            super(props);
            this.state = {
                current: 'asthma',
                thumbnail_vids: [require('../thumbnails/asthma_1.jpeg'),require('../thumbnails/asthma_2.jpeg'),require('../thumbnails/asthma_3.jpeg')]
            }
        }
        componentWillReceiveProps(nextProps){
            let current = nextProps.current.topic;
            let thumbnail_vids = [];
            for(let i = 1; i <= 3; i++){
                thumbnail_vids.push(require("../thumbnails/"+current.toLowerCase()+"_"+i+".jpeg"));
                console.log(current);
            }
            this.setState({current,thumbnail_vids,})
        }
        chooseVideo(){
    
        }
        render(){
            const thumbnailimg = this.state.thumbnail_vids.map((img,i)=>{
                return(<img className="thumbimg" src={img}/>)
            })
            return(
            <div className="vid-and-thumb-holder">
                <div>
                    <span className="thumbtable">
                    {thumbnailimg}
    
                    </span>
                </div>
            </div>
            )
        }
    }
    
    export default Thumbnails;
    

    【讨论】:

      【解决方案3】:

      你得到的事实

      错误:找不到模块“。” webpackMissingModule

      表示您正在映射您的第一个字符串,并且映射中的第一项是字符串中的第一个字符:'.'。

      【讨论】:

        猜你喜欢
        • 2018-10-20
        • 2019-02-06
        • 2019-02-09
        • 2018-08-24
        • 2022-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-29
        相关资源
        最近更新 更多