Reactjs数据更改,文件名保持不变

时间:2017-04-23 12:45:45

标签: reactjs browser-cache

我的服务器上有一张picture.jpg图片。当我上传一张新图片时,将data.jpg替换为数据而不是名称(换句话说,旧的profile.jpg将被新的profile.jpg替换,但新的profile.jpg也称为profile.jpg)。在我的承诺返回后,我调用forceUpdate,但除非我更改图像的实际url(src),否则这不会做任何事情。请参阅我的代码,其中我尝试连接promises,以便react会识别url正在更改(从正确的url更改为“empty”,再次更改为正确的url):

fetch('http://localhost:3000/change_pet_pic/?petID='+this.props.pet.id+'&userID='+this.props.pet.ownerID, { method: 'POST', body: form })
        .then(function(res) {
            return res.json();
        }).then(function(json) {
            var pet = $this.props.pet;
            pet.petPicture = "empty";
            $this.props.pet=pet;
            $this.forceUpdate();

            return json.picture_url;

        }).then(function(url){
            var pet = $this.props.pet;
            pet.petPicture = url;
            $this.props.pet=pet;

            $this.forceUpdate();
        })

感谢您的提示!

1 个答案:

答案 0 :(得分:1)

您的ReactJS代码似乎没有问题,而应该是浏览器缓存,这会导致问题,因为图像网址看起来一直都会返回旧图像。

您可以采取的措施是,每当图像发生变化时,您都可以使用不同的查询字符串访问图像。

因此,您第一次可以使用profile.jpg?v=1访问此内容,第二次,您可以使用profile.jpg?v=2类似的内容访问它。