Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase下载URL随React.js render()中的变量消失_Javascript_Reactjs_Firebase_Firebase Storage_Render - Fatal编程技术网

Javascript Firebase下载URL随React.js render()中的变量消失

Javascript Firebase下载URL随React.js render()中的变量消失,javascript,reactjs,firebase,firebase-storage,render,Javascript,Reactjs,Firebase,Firebase Storage,Render,在html的一部分中,我返回React render函数。“故事”(从呈现前的状态中检索值)包含js对象,其属性包括“url”等。单独记录整个对象和其他属性时,它们会显示在控制台上,但“url”属性不会显示。该url包含图像的firebase下载url,当我获取该url以将其加载到状态时,它存在于渲染函数之外。但在进入render()后消失。这是render()中的一个片段 {stories.map((story,idx)=>{ console.log(故事); log(JSON.string

在html的一部分中,我返回React render函数。“故事”(从呈现前的状态中检索值)包含js对象,其属性包括“url”等。单独记录整个对象和其他属性时,它们会显示在控制台上,但“url”属性不会显示。该url包含图像的firebase下载url,当我获取该url以将其加载到状态时,它存在于渲染函数之外。但在进入render()后消失。这是render()中的一个片段


{stories.map((story,idx)=>{
console.log(故事);
log(JSON.stringify(story));
log(story.url);
返回(
{story.image!=null?
: ""
}
{story.khronos==null?
"" : (
{story.khronos}
)
}
{story.title}
{story.text}

) })}
控制台中的输出如下所示:


因此,对象将“url”属性显示为对象,而不是字符串。单独访问时,“url”未定义。我不知道发生了什么事。结果我得到了图像的另一个视图。提前感谢。

因为
JSON.stringify
没有显示
url
,这意味着该值/属性是在您最初记录对象之后添加的,Chrome的控制台只是用新属性更新记录的对象


最有可能的是
url
是从某个地方异步加载的,但是我们不能说这是基于您共享的代码的。不管怎样,解决方案都是一样的:当你在
stories
对象中设置一个故事的
url
时,你还需要在你的应用程序的状态下更新
stories
对象,这样你就知道它需要更新该对象的用户界面。

你能
console.log吗(JSON.stringify(story))
并将更新后的代码及其输出包含在问题中?@FrankvanPuffelen对其进行了更新。它将其更改为字符串。url已消失。是否可从stories[idx]访问它.url?@TechySharnav是的,这也不起作用。谢谢!在完成更新循环后,我只在最后更新了一次状态!吸取了教训。嗨,弗兰克,我也在处理同样的问题。我正在获取下载的url,通过调度将其传递给状态。我的组件重新渲染,图像的容器出现了rs但图像没有。事实上,当我尝试手动复制上传图像的下载URL并在图像组件中使用它时(在React Native中),图像不会再次显示。如果您能提供帮助,我将非常感激。我将在回答中共享代码:)
     <div className="Storysubmain">
        {stories.map((story, idx) => {
          console.log(story);
          console.log(JSON.stringify(story));
          console.log(story.url);
          return (
            <div className="story" key={idx}>
              {story.image != null ?
                <div className="storyimagebox">
                  <a rel='noopener noreferrer' target='_blank' href={story.link}>
                    <img src={story.url} alt='Related view' />
                  </a>
                </div>
                : ""
              }
              <div className="storydetails">
                {story.khronos == null ?
                  "" : (
                    <span className="storykhronos">{story.khronos}</span>
                  )
                }
                <span className="storytitle">{story.title}</span>
                <p>{story.text}</p>
              </div>
            </div>
          )
        })}
      </div>
    </div>