\ r \ n в результатах API - Как избавиться от этого - PullRequest
0 голосов
/ 12 сентября 2018

Вы можете увидеть пример, перейдя по этой ссылке http://www.recipepuppy.com/api/?i=butter

Соответствующая часть JSON:

{  
  ...
  "results":[
    ...
    {  
    "title":"Fudge Fondue \r\n\t\t\r\n\t\r\n\t\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\r\n",
    "href":"http:\/\/www.kraftfoods.com\/kf\/recipes\/fudge-fondue-51563.aspx",
    "ingredients":"hot fudge, butter",
    "thumbnail":"http:\/\/img.recipepuppy.com\/611087.jpg"
    },
    ...
  ]
}

Я создаю это приложение с реагировать родной, но я думаю,Неважно, используемый язык, он всегда будет добавлять эти надоедливые строки.

Есть ли какие-то решения для этого?

Я знаю, что могу использовать что-то подобное .replace(/[\r\n]/g, "");, но я неЯ точно не знаю, как мне с этим справиться, API-интерфейс возвращает один массив, который я храню в data=responseJson.results, а затем в представлении, которое я рендерим, заголовки вызывают проблему с FlatList, например

<FlatList
data={this.state.data}
keyExtractor={(item, index) => item.href}
ListEmptyComponent={this.noItemDisplay}
renderItem={({ item, index }) => (

            <Body>
              <Text>{item.title}</Text>
            </Body>
)}/>

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Метод JavaScript trim () удаляет пробелы с обоих концов строки, но не между ними.Пробелами могут быть символы табуляции или пробелы

title= "Fudge Fondue \r\n\t\t\r\n\t\r\n\t\t\r\n\t\r\n\t\t\r\n\t\r\n\t\r\n\r\n";

tileAfterRemovingSpaces = title.trim();

console.log("tileAfterRemovingSpaces", tileAfterRemovingSpaces)

Источник

0 голосов
/ 12 сентября 2018

Я прошу прощения за мой наивный ответ, который был ошибкой с моей стороны.

Вот более подробное резюме, хотя и довольно теоретическое.

Согласно статье В статье о разрыве строки nl2br вы не можете использовать следующее, так как это вернетстрока с узлами DOM внутри (это должна быть только строка):

this.state.text.replace(/(?:\r\n|\r|\n)/g, '<br />')

Более того, что-то вроде этого:

{this.props.text.split(“\n”).map(function(item) {
  return (
    {item}
    <br/>
  )
})}

не будет работать, потому что React, включая React Native,чистые функции и две функции могут быть рядом друг с другом .

Таким образом, решение будет заключаться в переносе каждого переноса строки в интервале из-за встроенного отображения диапазона, давайтевзгляните на следующий код:

{this.props.section.text.split(“\n”).map(function(item, i) {
  return (
    <span key={i}>
      {item}
      <br/>
    </span>
  )
})}

Я надеюсь, что этот ответ поможет понять ваш конкретный случай!Не стесняйтесь оставлять комментарии.И спасибо Джону Джону Р за то, что он указал на мои ошибочные пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...