#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! это устранило проблему.