প্রতিক্রিয়া ইনলাইন শৈলীর সাথে একটি পটভূমি সেট করা


288

আমি backgroundImageপ্রতিক্রিয়ার মধ্যে একটি ইনলাইন সম্পত্তি ব্যবহার করার জন্য একটি স্থিতিশীল চিত্র অ্যাক্সেস করার চেষ্টা করছি । দুর্ভাগ্যক্রমে, আমি এটি কীভাবে শুষ্ক করেছি।

সাধারণত, আমি ভেবেছিলাম আপনি কেবল নীচের মত কাজ করেছেন:

import Background from '../images/background_image.png';

var sectionStyle = {
  width: "100%",
  height: "400px",
  backgroundImage: "url(" + { Background } + ")"
};

class Section extends Component {
  render() {
    return (
      <section style={ sectionStyle }>
      </section>
    );
  }
}

এটি <img>ট্যাগগুলির জন্য কাজ করে । কেউ দুজনের পার্থক্য ব্যাখ্যা করতে পারেন?

উদাহরণ:

<img src={ Background } /> ঠিক কাজ করে।

ধন্যবাদ!

উত্তর:


473

ব্যাকগ্রাউন্ডের ভিতরে কোঁকড়া ধনুর্বন্ধনী ইমেজ সম্পত্তি ভুল।

সম্ভবত আপনি চিত্র ফাইল লোডার সহ ওয়েবপ্যাক ব্যবহার করছেন, সুতরাং ব্যাকগ্রাউন্ডটি ইতিমধ্যে একটি স্ট্রিং হওয়া উচিত: backgroundImage: "url(" + Background + ")"

একই প্রভাব অর্জন করতে আপনি নীচের হিসাবে ES6 স্ট্রিং টেম্পলেটগুলিও ব্যবহার করতে পারেন:

backgroundImage: `url(${Background})`

আমার প্রশ্নের সাথে আমার এটি যুক্ত করা উচিত ছিল। আমার প্রস্থ এবং উচ্চতা সেট রয়েছে (যথাক্রমে 100% / 400px)। উত্থাপিত সমস্যাটি আমার বিশ্বাস স্থিতিশীল চিত্রগুলি কীভাবে পরিচালনা করে তা কারণে to
ক্রিস

W3.org/TR/CSS2/syndata.html#value-def-uri অনুযায়ী কনটেনটেশনের আগে ব্যাকগ্রাউন্ড ভেরিয়েবলের '(",') 'এবং সাদা স্পেস অক্ষরগুলি কী পালাতে হবে ?
qbolec

50
সম্পূর্ণ সিনট্যাক্সটি দেখতে এইরকম হওয়া উচিত:style={{backgroundImage: "url(" + Background + ")"}}
মাইকে

2
কেবল @ মাইকের মন্তব্যটি প্রসারিত করতে আপনার দ্বিগুণ কোঁকড়া ধনুর্বন্ধনী প্রয়োজন কারণ একটিতে প্রবেশ করার জন্য জেএস মোড এবং একটিতে নতুন অবজেক্টটি বোঝানো হচ্ছে।
সিপ্রিয়ান টোমাইগă

'./Background.jpg' থেকে এই আমদানি ব্যাকগ্রাউন্ড দেওয়ার পরে আমি 'বিভাগ' সংজ্ঞায়িত হলেও কখনও ব্যবহার করা হয়নি ত্রুটিটি পাচ্ছি; var বিভাগ স্টাইল = {প্রস্থ: "100%", উচ্চতা: "400px", পটভূমি চিত্র: url(${Background})}; শ্রেণি বিভাগ বিভাগকে প্রসারিত করে {রেন্ডার () {রিটার্ন (<বিভাগ শৈলী = {বিভাগ স্টাইল}> </ বিভাগ>); }}
পবনান এমএস

41

আপনি যদি ES5 ব্যবহার করে থাকেন -

backgroundImage: "url(" + Background + ")"

আপনি যদি ES6 ব্যবহার করে থাকেন -

backgroundImage: `url(${Background})`

মূলত ব্যাকগ্রাউন্ডে মান যোগ করার সময় অপ্রয়োজনীয় কোঁকড়া ধনুর্বন্ধনী বন্ধ করা ইমেজ সম্পত্তি কাজ করবে।


2
ES6 এ আমার জন্য এটি ছিল backgroundImage: `url("${Background}")`, কারণ আপনার ES6 উদাহরণটি আমার পক্ষে কার্যকর হয়নি।
এস ..

হ্যালো ভারদ, আপনি যদি একাধিক ব্যাকগ্রাউন্ড চিত্র যুক্ত করতে চান তবে আপনি এটি কীভাবে করবেন। দুটি চিত্রের জন্য বলুন কীভাবে আপনি এটি করবেন? ধন্যবাদ
সাফল্যের পথে

37

কোনও চিত্র পূর্ণ পর্দা সেট করতে ইনলাইন শৈলী:

style={{  
  backgroundImage: "url(" + "https://images.pexels.com/photos/34153/pexels-photo.jpg?auto=compress&cs=tinysrgb&h=350" + ")",
  backgroundPosition: 'center',
  backgroundSize: 'cover',
  backgroundRepeat: 'no-repeat'
}}

17

আপনি require()ফাংশনটি ব্যবহার করে চিত্রটিকে উপাদানটিতে আনতে পারেন ।

<div style={{ backgroundImage: `url(require("images/img.svg"))` }}>

কোঁকড়া বন্ধনী দুটি সেট নোট করুন । প্রথম সেটটি প্রতিক্রিয়া মোডে প্রবেশের জন্য এবং দ্বিতীয়টি হ'ল অবজেক্ট ডেনোটিংয়ের জন্য


স্থানীয় পাথের পরিবর্তে যদি চিত্রের পথটি একটি ওয়েব ইউআরএল হয়? https://images.com/myimage.png
এরকমই

3
ঠিক আছে আমি বুঝতে পারি, ওয়েব-ভিত্তিক ইউআরএল ব্যবহার করার সময়। আমার শুধু লিখতে হবেurl(https://images.com/myimage.png)
আমিনু কানো

4

আপনি backgroundImageএই জাতীয় সম্পত্তির পরিবর্তে টেম্পলেট লিটারালগুলি (ব্যাক-টিক সহ: `...`) ব্যবহার করতে পারেন:

backgroundImage: `url(${Background})`


2

আমার জন্য যা কাজ করেছে তা এরকম হচ্ছে

style={{ backgroundImage: `url(${require("./resources/img/banners/3.jpg")})` }}

-1

আপনি usimg চেষ্টা করতে পারেন

backgroundImage: url(process.env.PUBLIC_URL + "/      assets/image_location")

এটি সুপারিশ করা হয় না কেননা এটি ওয়েবপ্যাকটি সম্পদটি জানার থেকে বাধা দেবে। প্রতিক্রিয়া অ্যাপটি অফলাইনে খোলা থাকলে এটি একটি ক্যাশে মিসে শেষ হবে end
থমাস কেকেইসেন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.