Как отобразить данные, полученные из WordPress RestAPI, в формате html с помощью React?

#javascript #reactjs #wordpress #api

#язык JavaScript #реагирует на #wordpress #API

Вопрос:

Используя React, я пытаюсь получить данные страницы из API WordPress. изображение моего текущего выхода

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

Чтобы получить данные:

 //fetching the pages  useEffect( ()=gt;{  Axios.get("https://www.eswaran.no/wp-json/wp/v2/pages").  then(response =gt; {  setPosts(response.data);    }, [posts, setPosts]); })  

Для отображения данных:

 lt;div className="page-list"gt;  {posts amp;amp; posts.length amp;amp; posts.map((post, index) =gt; {  return (  lt;div key={post.id} className="page"gt;  lt;h2gt;{post.title.rendered}lt;/h2gt;  lt;h4gt;{moment(post.date).format('Do MMMM YYYY')}lt;/h4gt;  lt;div dangerouslySetInnerHTML={{ __html: post.excerpt.rendered}} /gt;  lt;a href={post.link} target="_blank"gt;Go to pagelt;/agt;  lt;/divgt;  );  })} lt;/divgt;  

Комментарии:

1. Но… Это именно то, что возвращает API. Ваш код очень хорошо справляется с этой задачей.

2. есть ли способ удалить эти «[vc_row]» и подобные, как только мы получим результаты? Я хотел бы иметь обычный текст только в том случае, если я не могу вернуть html

Ответ №1:

Хорошо, ваш Api хорошо возвращает данные.

Поэтому для того, чтобы просто снять скобки, вы можете использовать регулярное выражение :

 {posts amp;amp; posts.length amp;amp; posts.map((post, index) =gt; {  const cleanExcerpt = post.excerpt.rendered.replace(/[([^[])*(])/g, '');   return (  lt;div key={post.id} className="page"gt;  lt;h2gt;{post.title.rendered}lt;/h2gt;  lt;h4gt;{moment(post.date).format('Do MMMM YYYY')}lt;/h4gt;  lt;div dangerouslySetInnerHTML={{ __html: cleanExcerpt }} /gt;  lt;a href={post.link} target="_blank"gt;Go to pagelt;/agt;  lt;/divgt;  );  })}  

Комментарии:

1. Большое спасибо:D! это устранило проблему.