Wordpress React博客未正确渲染图像

Wordpress React博客未正确渲染图像,wordpress,reactjs,Wordpress,Reactjs,我是新来的。我正在尝试从我的wordpress站点制作一个实时提要。我在渲染与每篇文章相关的图像时遇到问题 在下面的代码中,我记录了mediaSRC变量,该变量用于存储图像的url。记录此日志时,正确的URL将输出到控制台。但是,当我稍后尝试在if语句之后创建Post对象时,mediaID=为“NO IMAGE” 当我呈现帖子时,html img显示img src=“无图像” {posts.map(函数(post)){ //mediaSRC最终将由我的 var mediaSRC=“无图像”;

我是新来的。我正在尝试从我的wordpress站点制作一个实时提要。我在渲染与每篇文章相关的图像时遇到问题

在下面的代码中,我记录了mediaSRC变量,该变量用于存储图像的url。记录此日志时,正确的URL将输出到控制台。但是,当我稍后尝试在if语句之后创建Post对象时,mediaID=为“NO IMAGE”

当我呈现帖子时,html img显示img src=“无图像”


{posts.map(函数(post)){
//mediaSRC最终将由我的
var mediaSRC=“无图像”;
//post.U媒体将访问图像的媒体ID
var media=post.featured_media;
//如果没有图像集,请将mediaSRC设置为此字符串
如果(post.featured_media==0){
mediaSRC=“媒体ID为零”;
}
//如果有图像,请将mediaSRC设置为图像的url
否则{
j、 ajax(React_Theme_Resource.url+“/wp json/wp/v2/media/”+media)
.done(函数(数据){mediaSRC=data.guid.rendered;console.log(mediaSRC)})
.fail(函数(){console.log(“fail”)})
.always(函数(){})
}
//创建后期对象注意:不使用图像
返回
})}

您正在通过一个
ajax
请求获取图像,但是组件没有使用新的图像源进行更新。这里有几个问题

在渲染方法中发出ajax请求是一种不好的做法。它们的最佳位置(如果您没有使用Flux、Redux或其他状态管理库)是在构造函数中

其次,您需要使用
.setState()
(同样,如果您使用react state管理组件和应用程序的状态)方法将新图像源添加到组件中


您可以在此处阅读有关react state的更多信息:

谢谢。现在,我将查看一下。我感谢您的帮助。如果我能够解决,将标记为已解决。
      <div className="main-feed">
        {posts.map(function(post){

          //mediaSRC is eventually going to by my <img src >
          var mediaSRC ="NO IMAGE";
          //post.featured_media will access the media ID of the image 
          var media = post.featured_media;

          // if there is no image set mediaSRC to this string 
          if (post.featured_media ==0){
              mediaSRC="MEDIA ID IS ZERO";  
          }
          // if there is an image, set mediaSRC to the url of image
          else{
            j.ajax(React_Theme_Resource.url + "/wp-json/wp/v2/media/" +media)
            .done(function(data){mediaSRC = data.guid.rendered; console.log(mediaSRC)})
            .fail(function(){console.log("FAIL")})
            .always(function(){})
        }
          //Create Post object NOTE : working without images
          return <Post post={post} mediaID={mediaSRC} key={post.id} />
        })}
      </div>