Flux / React设计模式

时间:2015-02-07 21:42:55

标签: javascript reactjs reactjs-flux

我正在编写一个小型Flux / React应用程序,它将在图库中显示图像。我在Flux商店中有一个计时器,它每隔30秒从Web服务中提取新图像并将它们添加到商店中的列表中,然后发出更改,以便视图可以呈现新照片。

我已经完成了所有工作,但现在我想弄清楚如何在添加的最新图像中专门添加一些css,但是我不确定最好的方法是将它传达给从商店看,没有它变得非常狡猾......

1 个答案:

答案 0 :(得分:0)

您可以在商店发送更新消息时跟踪更改。

store.addChangeEventListener((images) => {
  var last = this.state.newImageUrls || {};
  var now = {};

  images.forEach(function(img){
    if(!last[img.src]) now[img.src] = true;
  });

  this.setState({newImageUrls: now, images: images});
});

在渲染中,您检查给定的图像src是否是新的:

var newImages = this.state.newImageUrls;
...
images.map(function(x, i){
  return <img src={x.src} className={newImages[x.src] ? "new" : ""} />
});