& 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.