2016-11-04 2 views
0

Я пытаюсь заменить каждый /n на тег <br> в ReactJS. В моем объекте note.note есть строка с несколькими /n.Как заменить/n на linebreaks в response.js?

пример note.note:test\ntest\ntest

То, что я пытался в ReactJS:

{ 
    note.note.split('\n').map(function(item, idx) { 
    return (
     <span key={idx}> 
      {item} 
      <br/> 
     </span> 
    ) 
    }) 
} 
+0

Вы можете уточнить «не работает «? Похоже, ваша логика звучит: https://jsfiddle.net/sn2qkgzs/1/ – CodingIntrigue

ответ

3

Ваш код работает хорошо:

{ 
    note.note.split("\n").map(function(item, idx) { 
     return (
      <span key={idx}> 
       {item} 
       <br/> 
      </span> 
     ) 
    }) 
} 

Примечание: проблема

ОП был с бэкэндом, который возвращает \\n и показывает, как \n на вкладке XHR preview

+0

Да, похоже, что замена будет проще/чище, чем расщепление и повторная сборка – Jayce444

+1

@ Jayce444 Это обычно используемый способ полной замены в javascript 's.split (" \ n "). join ("
")', например – Archer

+0

В чем разница с моим методом здесь? Единственное, что я вижу по-разному, это текст. note после примечания. –

0

Другой подход:

{ 
    note.note.split('\n').map((item, idx) => { 
     return (
      <span key={idx}> 
      {item} 
      <br/> 
      </span> 
     ); 
    }) 
} 
Смежные вопросы