2017-10-09 125 views
0

我決定反應使用內聯JS樣式。除了圖像,一切都可以。在這裏,我嘗試添加背景圖片到div,但我得到錯誤。添加背景圖片陣營JS

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

var styles = { 
color:'violet', 
backgroundImage: 'url(' + require('./sun.png') + ')' 
}; 

class App extends React.Component { 
    render() { 
    return (
    <div> 
     <h1>How to make smth</h1> 
     <div style={styles}>test</div> 
    </div> 
    ) 
    } 
} 

ReactDOM.render(<App/>, document.getElementById('root')); 

我得到的錯誤,我只是不知道我需要什麼裝載機以及如何將它添加到的WebPack配置(或的package.json)

here is what i get

回答

3

嘗試

import React, {Component} from 'react'; 
import ReactDOM from "react-dom"; 
import image from './sun.png'; 

var styles = { 
color:'violet', 
backgroundImage: 'url('+image+')' 
}; 

添加裝載機: 在您使用的webpack配置中更改

module: { 
    loaders: [ 
     { 
     test: /\.jsx?$/, 
     exclude: /(node_modules|bower_components)/, 
     loader: 'babel-loader', 
     query: { 
      presets: ['react', 'es2015', 'stage-0'], 
      plugins: ['react-html-attrs', 'transform-decorators-legacy', 'transform-class-properties'], 
     } 
     } 
    ] 

module: { 
    loaders: [ 
     { 
     test: /\.jsx?$/, 
     exclude: /(node_modules|bower_components)/, 
     loader: 'babel-loader', 
     query: { 
      presets: ['react', 'es2015', 'stage-0'], 
      plugins: ['react-html-attrs', 'transform-decorators-legacy', 'transform-class-properties'], 
     } 
     }, 
     { 
     test: /\.png$/, 
     loader: "url-loader", 
     query: { mimetype: "image/png" } 
     } 
    ] 
+0

它看起來像試過一個很好的solution.I但同樣的錯誤: 模塊解析失敗。 ....你可能需要一個合適的加載器來處理這種文件類型。 同樣的錯誤 – kilogram

+0

什麼是你正在使用的捆綁過嗎?你在使用create-react-app嗎?或者你是否手動配置捆綁器? – palsrealm

+0

我不在這裏使用create-react-app。我使用自定義的配置,我對codeacademy發現並修改了它有點 https://github.com/mapledrive/config.git – kilogram