Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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/8/http/4.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
Reactjs React.js组件在刷新当前路径时重复渲染Instagram中的相同图像_Reactjs_Http_Visual Glitch_Instafeedjs - Fatal编程技术网

Reactjs React.js组件在刷新当前路径时重复渲染Instagram中的相同图像

Reactjs React.js组件在刷新当前路径时重复渲染Instagram中的相同图像,reactjs,http,visual-glitch,instafeedjs,Reactjs,Http,Visual Glitch,Instafeedjs,我需要帮助,了解如何不让我的react.js组件从Instagram重新呈现相同的图像,并将它们添加到视图中的现有图像中 我的react.js组件中有一个容器,它从我的Instagram帐户中获取20张最新图片,并将它们呈现在一个整洁的网格中。该元素是流行框架的包装器,在react.js环境中提供相同的方法和配置 在初始加载时,它获取图像并渲染它们。但是,如果刷新了当前路由(例如,通过按下标题导航中的按钮),它将再次获取所有20个图像并将它们添加到视图中,依此类推 我试图通过在instafeed

我需要帮助,了解如何不让我的react.js组件从Instagram重新呈现相同的图像,并将它们添加到视图中的现有图像中

我的react.js组件中有一个容器,它从我的Instagram帐户中获取20张最新图片,并将它们呈现在一个整洁的网格中。该元素是流行框架的包装器,在react.js环境中提供相同的方法和配置

在初始加载时,它获取图像并渲染它们。但是,如果刷新了当前路由(例如,通过按下标题导航中的按钮),它将再次获取所有20个图像并将它们添加到视图中,依此类推

我试图通过在instafeed的“成功”或“之后”方法中设置类似“加载”的状态来处理它,但这显然不起作用,而且是反模式的

我试着用componentDidMount来实现这一点,结果是在初始渲染和20x2图像上同时进行了两次http调用


显然,在这种情况下,设置状态不是正确的策略。我如何防止元素对Instagram进行第n次调用,或者销毁componentWillUpdate()上的元素

这可能是您想要的,但是如果您需要其他组件来重新渲染instafeed,您可能需要将instafeed移动到它自己的有状态组件中,而不像该库在每次渲染时都提供控制和重新绘制。直接使用Instagram的api将更简单
/users/self/media/recent?access_token=access-token&count=20
,并映射结果。您可以在
componentDidMount
@RobbieMilejczak中调用api,这太棒了,正是我目前需要的。我想把你的答案标记为已接受,但我没有看到复选框。@RickJolly谢谢你的回答,我也一直在考虑这个问题。现在,我将坚持在shouldComponentUpdate()中返回false,但稍后我可能会进行重构,以便在没有instafeed的情况下获取帖子。这可能是您想要的,但是如果您需要其他组件来重新渲染instafeed,您可能需要将instafeed移动到它自己的有状态组件中,而不像该库在每次渲染时都提供控制和重新绘制。直接使用Instagram的api将更简单
/users/self/media/recent?access_token=access-token&count=20
,并映射结果。您可以在
componentDidMount
@RobbieMilejczak中调用api,这太棒了,正是我目前需要的。我想把你的答案标记为已接受,但我没有看到复选框。@RickJolly谢谢你的回答,我也一直在考虑这个问题。现在,我将坚持在shouldComponentUpdate()中返回false,但稍后我可能会进行重构,以便在没有instafeed的情况下获取帖子。