& nbsp jsx çalışmıyor


101

& Nbsp etiketini jsx'te kullanıyorum ve alanı oluşturmuyorum. Aşağıdaki kodumun küçük bir parçasıdır.Lütfen yardım edin.

var Reporting=React.createClass({

  render: function(){
    return(
      <div style={divPositionReporting}>
          <p>Pricing Reports</p>
          <hr></hr>
          Select Scenario:&nbsp;&nbsp;
          <select>
            <option></option>
          </select>
          <button type="button">Get Pricing Report</button>
          <br/>
          Select Takeout Scenario:&nbsp;
          <select>
            <option></option>
          </select>
          <button type="button">Get Pricing Report</button>
          <br/>
      </div>
    );
  },

});


Kodunuzda bir sorun olduğunu sanmıyorum. Hangi Babel ve React sürümünü kullanıyor? En son sürümleri kullandığınızdan emin olun. Sen görebilirsiniz Babel repl Oluşturulan kod bölünemez boşluk karakterleri içerdiğini.
Felix Kling

Peki şimdi ilk vuruş bu. :) duckduckgo.com/?q=jsx+nbsp
Marc Stober

Yanıtlar:


215

Bkz: JSX In Depth

Deneyin: Select Scenario:{'\u00A0'}

Veya: <div dangerouslySetInnerHTML={{__html: 'Select Scenario: &nbsp;'}} />

Veya: <div>&nbsp;</div>

jsfiddle

Güncelleme

Bazı yorumları gördükten ve denedikten sonra. JSX içinde html entites kullanmanın iyi çalıştığı dikkatimi çekti (yukarıdaki jsx-gotchas referansında belirtilenden farklı olarak [belki eski olabilir]).

Yani şöyle bir şey kullanmak R&amp;D, çıktı: 'Ar-Ge' olur. Tuhaf bir davranış var &nbsp;, bu onun farklı şekilde oluşturulmasına neden oluyor ve bu yüzden çalışmadığını düşünmeme neden oluyor:

<div>This works simply:-&nbsp;-</div>
<div>This works simply:- {'\u00A0'}-</div>

Üretir:

This works simply:- -
This works simply:-  -

8
Dolayısıyla cevap, html varlığına karşılık gelen unicode değerini kullanmak ve bunu bir javascript dizesi içinde kullanmaktır. Yardımınız için teşekkürler.
Indraneel Bende

@IndraneelBende &nbsp;iyi çalışmalı. Stil özniteliğindeki değerle ilgili bir sorun var.
Gaurav Kumar

@Gaurav Kumar, ben de denedim işe yaramadı, sadece göz ardı edildi. Cevabımdaki keman ekleyebilir misiniz lütfen?
omerts

1
<div>Doesn't work: -&nbsp;-</div>benim için gayet iyi çalışıyor. düzenleme: Bölünemez bir boşluk gibi görünmüyor.
Felix Kling

Mmh, beklenen çıktıyı React web sitesinde kendisi üretiyor ...
Felix Kling


17

Senin yazın jsxsarılmış kodu { }aşağıda gösterildiği gibi.

<h1>Code {' '}</h1>

Buraya boşluk veya herhangi bir özel karakter koyabilirsiniz.

örneğin senin durumunda

Select Takeout Scenario:&nbsp;

böyle olmalı

Select Takeout Scenario:{' '}

Çalışacak.

Tavsiye olarak &nbspfazladan boşluk eklemek için kullanmamalısınız, aynısını elde etmek için css kullanabilirsiniz .


2
Bu sadece boşluk eklemek içindir, ancak diğer html varlıkları için çalışmayacaktır
omerts

5
Bu bölünmeyen bir boşluk değil .
TimoSolo

1
@TimoSolo Sizi & nbsp veya yukarıda belirtilen tekniği kullanmaya teşvik etmiyorum. Benimki çalışmıyorsa ilk cevabı deneyebilirsiniz. Teşekkürler.
WitVault

"aynısını elde etmek için css kullanın" - Metninizin sonraki satıra ve metni içeren öğenin sınırının dışına düşmemesi için bölünemez boşluk kullanıyor olabilirsiniz. Bunun yerine CSS özelliklerini kullanmak istiyorsanız, bunu yapmanın bir yolu vardır text-overflow: "clip"; overflow: "hidden";. Birkaç varyasyon mevcuttur.
Dan Cron

4

Bu sizin için işe yaramazsa {' '}kullanın {'\u00A0'}.

{' '}bir boşluk oluşturacaktır, ancak satır yüksekliğinin de başka bir metin içermeyen bir HTML öğesinin içinde bir boşluk olmasını istediğiniz bir durumda oluşturulmasını istediğiniz bazı durumlar vardır <span style={{ lineHeight: '1em' }}>{' '}</span>; bu durumda {'\u00A0'}, span veya HTML öğesi.


1

Utf-8 nbsp'yi kullanmayı deneyin, basit bir alan gibi görünse de fazladan kod olmadan iyi çalışıyor.

Belki bunun için değişken oluşturmalısınız.

Kopya sembolleri için: https://unicode-table.com/en/00A0/

Otomatik olarak metin oluşturmak için bazı tipograflar kullanın.


0

ES6 şablon değişmezlerini de kullanabilirsiniz, yani,

`   <li></li>` or `  ${value}`

Bu cevabın html varlıkları ile ne ilgisi var?
boatcoder
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.